aboutsummaryrefslogtreecommitdiff
path: root/src/args.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/args.py')
-rw-r--r--src/args.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/args.py b/src/args.py
new file mode 100644
index 0000000..899ef3f
--- /dev/null
+++ b/src/args.py
@@ -0,0 +1,50 @@
+# ############################################################################ #
+# #
+# ::: :::::::: #
+# args.py :+: :+: :+: #
+# +:+ +:+ +:+ #
+# By: cacharle <me@cacharle.xyz> +#+ +:+ +#+ #
+# +#+#+#+#+#+ +#+ #
+# Created: 2020/10/01 10:23:09 by cacharle #+# #+# #
+# Updated: 2020/10/01 10:33:00 by cacharle ### ########.fr #
+# #
+# ############################################################################ #
+
+
+import argparse
+
+import config
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description="Philosophers test",
+ formatter_class=argparse.RawTextHelpFormatter
+ )
+ parser.add_argument(
+ "-p", "--philo",
+ help="Id of the philosopher program to test \n"
+ "- 1: philo_one\n"
+ "- 2: philo_two\n"
+ "- 3: philo_three\n"
+ "- 0: all programs\n",
+ required=True,
+ type=int,
+ choices=[0, 1, 2, 3]
+ )
+ parser.add_argument(
+ "-b", "--build",
+ help="Build and exit",
+ action="store_true"
+ )
+ parser.add_argument(
+ "-g", "--pager",
+ help="Open {} in a pager after the test".format(config.RESULT_FILE),
+ action="store_true"
+ )
+ parser.add_argument(
+ "-t", "--timeout",
+ help="Change the philosopher process time (in seconds)",
+ type=float,
+ default=config.TIMEOUT
+ )
+ return parser.parse_args()