diff options
Diffstat (limited to 'minishell_test/config.py')
| -rw-r--r-- | minishell_test/config.py | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/minishell_test/config.py b/minishell_test/config.py index 8f2f712..ab40afe 100644 --- a/minishell_test/config.py +++ b/minishell_test/config.py @@ -6,7 +6,7 @@ # By: cacharle <me@cacharle.xyz> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2021/02/26 09:40:36 by cacharle #+# #+# # -# Updated: 2021/02/27 12:18:55 by cacharle ### ########.fr # +# Updated: 2021/02/27 14:44:12 by cacharle ### ########.fr # # # # ############################################################################ # @@ -25,30 +25,47 @@ from minishell_test.args import parse_args DATA_DIR = Path(inspect.getfile(minishell_test.data)).parent CONFIG_FILENAME = Path('minishell_test.cfg') -config = configparser.ConfigParser() + +class ConfigParser(configparser.ConfigParser): + def __init__(self): + super().__init__(self) + + def getpath(self, section, options): + return Path(self.get(section, options)).resolve() + + def getargs(self, section, options): + value = self.get(section, options) + return value.strip().split(' ') if len(value) != 0 else [] + + def getmultiline(self, section, options): + return self.get(section, options).strip().split('\n') + + + +config = ConfigParser() config.read(DATA_DIR / 'default.cfg') # TODO check user_config for unkown stuff -user_config = configparser.ConfigParser() +user_config = ConfigParser() user_config.read(Path(".") / CONFIG_FILENAME) config.read_dict({**config, **user_config}) args = parse_args() BONUS = config.getboolean('minishell_test', 'bonus') -EXEC_NAME = Path(config.get('minishell_test', 'exec_name')) +EXEC_NAME = config.get('minishell_test', 'exec_name') MAKE = config.getboolean('minishell_test', 'make') +MAKE_ARGS = config.getargs('minishell_test', 'make_args') PAGER = config.getboolean('minishell_test', 'pager') PAGER_PROG = config.get('minishell_test', 'pager_prog') -LOG_PATH = Path(config.get('minishell_test', 'log_path')) +LOG_PATH = config.getpath('minishell_test', 'log_path') +CHECK_ERROR_MESSAGES = config.getboolean('minishell_test', 'check_error_messages') -SHELL_AVAILABLE_COMMANDS = config.get('shell', 'available_commands').strip().split('\n') +SHELL_AVAILABLE_COMMANDS = config.getmultiline('shell', 'available_commands') SHELL_PATH_VARIABLE = config.get('shell', 'path_variable') -SHELL_REFERENCE_PATH = Path(config.get('shell:reference', 'path')) - -reference_args = config.get('shell:reference', 'args') -SHELL_REFERENCE_ARGS = reference_args.strip().split(' ') if len(reference_args) != 0 else [] +SHELL_REFERENCE_PATH = config.getpath('shell:reference', 'path') +SHELL_REFERENCE_ARGS = config.getargs('shell:reference', 'args') TIMEOUT_TEST = config.getfloat('timeout', 'test') TIMEOUT_LEAKS = config.getfloat('timeout', 'leaks') @@ -63,7 +80,7 @@ elif home is not None: else: CACHE_DIR = Path('.cache', 'minishell_test') -SANDBOX_DIR = CACHE_DIR / 'sandbox' +SANDBOX_DIR = CACHE_DIR / 'sandbox' SHELL_AVAILABLE_COMMANDS_DIR = CACHE_DIR / 'bin' SHELL_PATH_VARIABLE = SHELL_PATH_VARIABLE.format(shell_available_commands_dir=SHELL_AVAILABLE_COMMANDS_DIR) @@ -71,7 +88,7 @@ SHELL_PATH_VARIABLE = SHELL_PATH_VARIABLE.format(shell_available_commands_dir=SH with open(DATA_DIR / 'lorem') as f: LOREM = ' '.join(f.read().split('\n')) -MINISHELL_DIR = Path(args.path) +MINISHELL_DIR = Path(args.path).resolve() MINISHELL_EXEC_PATH = MINISHELL_DIR / EXEC_NAME EXIT_FIRST = args.exit_first |
