298 def parse(legacy_args=False):
299 """parses command line arguments and returns an ``Options`` instance"""
305 dashpos = sys.argv.index(
"-")
310 args = sys.argv[1:dashpos]
311 user_opts = sys.argv[dashpos+1:]
321 doHelp = any(a
in (
'-h',
'--help')
or a.startswith(
'--help=')
for a
in args)
324 unrequiredActions = []
325 for a
in parser._actions:
327 unrequiredActions.append(a)
331 helpActions = {
'-h' : parser._option_string_actions.pop(
'-h'),
332 '--help' : parser._option_string_actions.pop(
'--help')}
335 opts, leftover = parser.parse_known_args(args)
338 parser._option_string_actions.update(helpActions)
339 for a
in unrequiredActions:
344 opts, leftover = parser.parse_known_args(args)
346 opts, leftover = parser.parse_known_args(args)
348 opts.user_opts = user_opts
352 if not (opts.scripts
or opts.fromdb)
and leftover:
353 JobOptAction([],
'scripts')(parser, opts, leftover)
355 if not (opts.scripts
or opts.fromdb)
and not opts.interactive:
356 parser.error(
"the following arguments are required: scripts")