diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-09-10 15:07:30 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-09-10 15:07:30 +0200 |
| commit | c0b1a90cf9c52a0c9b1623ac695516031d5ccdba (patch) | |
| tree | b286ff19de9e57eb1948f751072f09dc3e79f8fc /run | |
| parent | 2de1bf6e7dbda85ca3bb4ad77edac611a04b1ae3 (diff) | |
| download | minishell_test-c0b1a90cf9c52a0c9b1623ac695516031d5ccdba.tar.gz minishell_test-c0b1a90cf9c52a0c9b1623ac695516031d5ccdba.tar.bz2 minishell_test-c0b1a90cf9c52a0c9b1623ac695516031d5ccdba.zip | |
Updated README, Added auto build
Diffstat (limited to 'run')
| -rwxr-xr-x | run | 67 |
1 files changed, 67 insertions, 0 deletions
@@ -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() |
