浏览代码

Some argsparse reorganization

Jonas Borgström 13 年之前
父节点
当前提交
0165e4a09f
共有 1 个文件被更改,包括 12 次插入11 次删除
  1. 12 11
      darc/archiver.py

+ 12 - 11
darc/archiver.py

@@ -279,17 +279,18 @@ class Archiver(object):
             os.mkdir(dot_path)
             os.mkdir(os.path.join(dot_path, 'keys'))
             os.mkdir(os.path.join(dot_path, 'cache'))
-        parser = argparse.ArgumentParser(description='DARC - Deduplicating Archiver')
-        parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
+        common_parser = argparse.ArgumentParser(add_help=False)
+        common_parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
                             default=False,
                             help='Verbose output')
 
+        parser = argparse.ArgumentParser(description='DARC - Deduplicating Archiver')
         subparsers = parser.add_subparsers(title='Available subcommands')
 
-        subparser = subparsers.add_parser('serve')
+        subparser = subparsers.add_parser('serve', parents=[common_parser])
         subparser.set_defaults(func=self.do_serve)
 
-        subparser = subparsers.add_parser('init')
+        subparser = subparsers.add_parser('init', parents=[common_parser])
         subparser.set_defaults(func=self.do_init)
         subparser.add_argument('-p', '--password', dest='password',
                                help='Protect store key with password (Default: prompt)')
@@ -297,7 +298,7 @@ class Archiver(object):
                                type=location_validator(archive=False),
                                help='Store to create')
 
-        subparser = subparsers.add_parser('create')
+        subparser = subparsers.add_parser('create', parents=[common_parser])
         subparser.set_defaults(func=self.do_create)
         subparser.add_argument('-s', '--stats', dest='stats',
                                action='store_true', default=False,
@@ -317,7 +318,7 @@ class Archiver(object):
         subparser.add_argument('paths', metavar='PATH', nargs='+', type=str,
                                help='Paths to add to archive')
 
-        subparser = subparsers.add_parser('extract')
+        subparser = subparsers.add_parser('extract', parents=[common_parser])
         subparser.set_defaults(func=self.do_extract)
         subparser.add_argument('-i', '--include', dest='patterns',
                                type=IncludePattern, action='append',
@@ -331,18 +332,18 @@ class Archiver(object):
         subparser.add_argument('dest', metavar='DEST', type=str, nargs='?',
                                help='Where to extract files')
 
-        subparser = subparsers.add_parser('delete')
+        subparser = subparsers.add_parser('delete', parents=[common_parser])
         subparser.set_defaults(func=self.do_delete)
         subparser.add_argument('archive', metavar='ARCHIVE',
                                type=location_validator(archive=True),
                                help='Archive to delete')
 
-        subparser = subparsers.add_parser('list')
+        subparser = subparsers.add_parser('list', parents=[common_parser])
         subparser.set_defaults(func=self.do_list)
         subparser.add_argument('src', metavar='SRC', type=location_validator(),
                                help='Store/Archive to list contents of')
 
-        subparser= subparsers.add_parser('verify')
+        subparser= subparsers.add_parser('verify', parents=[common_parser])
         subparser.set_defaults(func=self.do_verify)
         subparser.add_argument('-i', '--include', dest='patterns',
                                type=IncludePattern, action='append',
@@ -354,13 +355,13 @@ class Archiver(object):
                                type=location_validator(archive=True),
                                help='Archive to verity integrity of')
 
-        subparser = subparsers.add_parser('info')
+        subparser = subparsers.add_parser('info', parents=[common_parser])
         subparser.set_defaults(func=self.do_info)
         subparser.add_argument('archive', metavar='ARCHIVE',
                                type=location_validator(archive=True),
                                help='Archive to display information about')
 
-        subparser = subparsers.add_parser('purge')
+        subparser = subparsers.add_parser('purge', parents=[common_parser])
         subparser.set_defaults(func=self.do_purge)
         subparser.add_argument('-H', '--hourly', dest='hourly', type=int, default=0,
                                help='Number of hourly archives to keep')