From 1ea3e1c15c4183d72ecf8a7b0db8983f2d6ec09d Mon Sep 17 00:00:00 2001 From: Val Lorentz Date: Wed, 1 Mar 2023 20:07:58 +0100 Subject: [PATCH] Fix insp4 support after 'helpop' config file was renamed (#187) https://github.com/inspircd/inspircd/commit/c2e954903ad40581043c49dc0552ae7dd87e8ab0 --- irctest/controllers/inspircd.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/irctest/controllers/inspircd.py b/irctest/controllers/inspircd.py index a2db87c..b0b1821 100644 --- a/irctest/controllers/inspircd.py +++ b/irctest/controllers/inspircd.py @@ -1,3 +1,4 @@ +import functools import shutil import subprocess from typing import Optional, Set, Type @@ -80,8 +81,8 @@ TEMPLATE_CONFIG = """ # HELP/HELPOP # for the HELP alias - - + + # Misc: @@ -94,6 +95,17 @@ TEMPLATE_SSL_CONFIG = """ """ +@functools.lru_cache() +def installed_version() -> int: + output = subprocess.check_output(["inspircd", "--version"], universal_newlines=True) + if output.startswith("InspIRCd-3"): + return 3 + if output.startswith("InspIRCd-4"): + return 4 + else: + assert False, f"unexpected version: {output}" + + class InspircdController(BaseServerController, DirectoryBasedController): software_name = "InspIRCd" supported_sasl_mechanisms = {"PLAIN"} @@ -138,6 +150,13 @@ class InspircdController(BaseServerController, DirectoryBasedController): else: ssl_config = "" + if installed_version() == 3: + help_module_name = "helpop" + elif installed_version() == 4: + help_module_name = "help" + else: + assert False, f"unexpected version: {installed_version()}" + with self.open_file("server.conf") as fd: fd.write( TEMPLATE_CONFIG.format( @@ -147,6 +166,7 @@ class InspircdController(BaseServerController, DirectoryBasedController): services_port=services_port, password_field=password_field, ssl_config=ssl_config, + help_module_name=help_module_name, ) ) assert self.directory