aboutsummaryrefslogtreecommitdiff
path: root/src/main.py
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-09-11 12:33:34 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-09-11 12:33:34 +0200
commit46ba2708f83bf46186c33bf84975d39e87f467c1 (patch)
tree8275c80bba98d63e81e3af9a1df8be62e0419003 /src/main.py
parentc0b1a90cf9c52a0c9b1623ac695516031d5ccdba (diff)
downloadminishell_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-xsrc/main.py67
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()