diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-09-11 12:33:34 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-09-11 12:33:34 +0200 |
| commit | 46ba2708f83bf46186c33bf84975d39e87f467c1 (patch) | |
| tree | 8275c80bba98d63e81e3af9a1df8be62e0419003 /src/main.py | |
| parent | c0b1a90cf9c52a0c9b1623ac695516031d5ccdba (diff) | |
| download | minishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.tar.gz minishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.tar.bz2 minishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.zip | |
Refactoring files, splited test.py and suite.py in packages
Diffstat (limited to 'src/main.py')
| -rwxr-xr-x | src/main.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/main.py b/src/main.py new file mode 100755 index 0000000..a71a485 --- /dev/null +++ b/src/main.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 + +# ############################################################################ # +# # +# ::: :::::::: # +# main.py :+: :+: :+: # +# +:+ +:+ +:+ # +# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2020/07/15 15:11:52 by charles #+# #+# # +# Updated: 2020/07/15 15:11:52 by charles ### ########.fr # +# # +# ############################################################################ # + +import os +import sys +import shutil +import distutils.spawn +import subprocess + +import config +from args import parse_args +from suite import Suite +import suites.builtin +import suites.cmd +import suites.preprocess +import suites.operation +import suites.parenthesis +import suites.status +import suites.path + +def main(): + args = parse_args() + if args.list: + print("The available suites are:") + print('\n'.join([" - " + s.name for s in Suite.available])) + sys.exit(0) + + if config.MINISHELL_BUILD or args.build: + try: + subprocess.run(["make", "-C", config.MINISHELL_DIR], check=True) + except subprocess.CalledProcessError: + sys.exit(1) + if args.build: + sys.exit(0) + if os.path.exists(config.EXECUTABLES_PATH): + shutil.rmtree(config.EXECUTABLES_PATH) + os.mkdir(config.EXECUTABLES_PATH) + for cmd in config.AVAILABLE_COMMANDS: + shutil.copy(distutils.spawn.find_executable(cmd), # FIXME search whole PATH + os.path.join(config.EXECUTABLES_PATH, cmd)) + + + config.VERBOSE_LEVEL = args.verbose + Suite.setup(args.suites) + try: + Suite.run_all() + except KeyboardInterrupt: + shutil.rmtree(config.SANDBOX_PATH) + + Suite.summarize() + Suite.save_log() + print("See", config.LOG_PATH, "for more information") + + +if __name__ == "__main__": + main() |
