294 def parse(legacy_args=False):
295 """parses command line arguments and returns an ``Options`` instance"""
301 dashpos = sys.argv.index(
"-")
306 args = sys.argv[1:dashpos]
307 user_opts = sys.argv[dashpos+1:]
317 doHelp = any(a
in (
'-h',
'--help')
or a.startswith(
'--help=')
for a
in args)
320 unrequiredActions = []
321 for a
in parser._actions:
323 unrequiredActions.append(a)
327 helpActions = {
'-h' : parser._option_string_actions.pop(
'-h'),
328 '--help' : parser._option_string_actions.pop(
'--help')}
331 opts, leftover = parser.parse_known_args(args)
334 parser._option_string_actions.update(helpActions)
335 for a
in unrequiredActions:
340 opts, leftover = parser.parse_known_args(args)
342 opts, leftover = parser.parse_known_args(args)
344 opts.user_opts = user_opts
348 if not (opts.scripts
or opts.fromdb)
and leftover:
349 JobOptAction([],
'scripts')(parser, opts, leftover)
351 if not (opts.scripts
or opts.fromdb)
and not opts.interactive:
352 parser.error(
"the following arguments are required: scripts")