-(opt, flags, remainder) = o.parse(sys.argv[1:])
-
-for flag, value in flags:
- if flag == '--create' or flag == '-c':
- action = 'create'
- elif flag == '--list' or flag == '-t':
- action = 'list'
- elif flag == '--extract' or flag == '-x':
- action = 'extract'
- elif flag == '--start-extract':
- action = 'start-extract'
- elif flag == '--finish-extract':
- action = 'finish-extract'
- elif flag == '--file' or flag == '-f':
- target_filename = value
- elif flag == '--recurse' or flag == '-R':
- should_recurse = True
- elif flag == '--no-recurse':
- should_recurse = False
- elif flag in frozenset(['--xdev', '--one-file-system']):
- xdev = True
- elif flag in frozenset(['--no-xdev', '--no-one-file-system']):
- xdev = False
- elif flag == '--numeric-ids':
- restore_numeric_ids = True
- elif flag == '--no-numeric-ids':
- restore_numeric_ids = False
- elif flag == '--paths':
- include_paths = True
- elif flag == '--no-paths':
- include_paths = False
- elif flag == '--symlinks':
- handle_symlinks = True
- elif flag == '--no-symlinks':
- handle_symlinks = False
- elif flag == '--verbose' or flag == '-v':
- metadata.verbose += 1
- elif flag == '--quiet' or flag == '-q':
- metadata.verbose = 0
-
-if not action:
- o.fatal("no action specified")
-
-if action == 'create':
+(opt, flags, remainder) = o.parse(['--paths', '--symlinks', '--recurse']
+ + sys.argv[1:])
+
+opt.verbose = opt.verbose or 0
+opt.quiet = opt.quiet or 0
+metadata.verbose = opt.verbose - opt.quiet
+
+action_count = sum([bool(x) for x in [opt.create, opt.list, opt.extract,
+ opt.start_extract, opt.finish_extract,
+ opt.edit]])
+if action_count > 1:
+ o.fatal("bup: only one action permitted: --create --list --extract --edit")
+if action_count == 0:
+ o.fatal("bup: no action specified")
+
+if opt.create: