33 multi_opt: bool =
False,
34 dag_opt: bool =
False,
37 """Parser for the prefix command itself, relying on ArgumentParser."""
39 parser = ArgumentParser(add_help=
False)
41 parser.add_argument(
"exec", nargs=
"?")
43 parser.add_argument(
"-b",
"--background", action=
"store_true")
44 parser.add_argument(
"-d",
"--dry-run", action=
"store_true")
46 parser.add_argument(
"-d",
"--dag", type=Path)
48 parser.add_argument(
"-n",
"--memory-needs", type=int, default=1024)
51 parser.add_argument(
"-h",
"--help", action=
"store_true")
52 parser.add_argument(
"-t",
"--tutorial", action=
"store_true")
53 parser.add_argument(
"-g",
"--git", action=
"store_true")
55 parser.add_argument(
"-e",
"--example", action=
"store_true")
58 parser.add_argument(
"-v",
"--verbose", action=
"store_true")
59 parser.add_argument(
"-m",
"--mute", action=
"store_true")
60 parser.add_argument(
"-f",
"--fill", action=
"store_true")
61 parser.add_argument(
"-F",
"--Friend", action=
"store_true")
62 parser.add_argument(
"-s",
"--syst", action=
"store_true")
63 parser.add_argument(
"-c",
"--config", type=Path)
64 parser.add_argument(
"-j",
"--nSplit", type=int, default=NPROC)
67 cmds, args = parser.parse_known_intermixed_args(argv[1:])
69 if any(x
in args
for x
in [
"-k",
"--nNow"]):
70 raise ValueError(
"Giving `-k` or `--nNow` is meaningless in this context.")
71 unknown_explicit_args = [arg
for arg
in args
if arg[0] ==
"-"]
72 if len(unknown_explicit_args) > 0:
74 f
"No unknown explicit option is allowed: {unknown_explicit_args}"
89 args += [
"-c", str(cmds.config.absolute())]
92 if cmds.help
or len(argv) == 1:
93 prefix = os.path.basename(sys.argv[0])
95 f
"\33[1m{prefix} exec args [...]\33[0m",
96 "where\texec = a command using `Darwin::Tools::Options` with `Darwin::Tools::split`",
97 "\targs = the arguments of the same command, one being called exactly `output`",
102 lines = textwrap.TextWrapper(width=80).wrap(text=tutorial)
103 print(*lines, sep=
"\n")