def parse_args(args): '''Parse command line''' parser = ArgumentParser( description='''Control a mounted S3QL File System''', epilog=textwrap.dedent('''\ Hint: run `%(prog)s <action> --help` to get help on the additional arguments that the different actions take.''')) pparser = ArgumentParser(add_help=False, epilog=textwrap.dedent('''\ Hint: run `%(prog)s --help` to get help on other available actions and optional arguments that can be used with all actions.''')) pparser.add_argument("mountpoint", metavar='<mountpoint>', type=(lambda x: x.rstrip('/')), help='Mountpoint of the file system') parser.add_debug() parser.add_quiet() parser.add_version() subparsers = parser.add_subparsers(metavar='<action>', dest='action', help='may be either of') subparsers.add_parser('flushcache', help='flush file system cache', parents=[pparser]) subparsers.add_parser('upload-meta', help='Upload metadata', parents=[pparser]) sparser = subparsers.add_parser('cachesize', help='Change cache size', parents=[pparser]) sparser.add_argument('cachesize', metavar='<size>', type=int, help='New cache size in KB') sparser = subparsers.add_parser('log', help='Change log level', parents=[pparser]) sparser.add_argument('level', choices=('debug', 'info', 'warn'), metavar='<level>', help='Desired new log level for mount.s3ql process. ' 'Allowed values: %(choices)s') sparser.add_argument('modules', nargs='*', metavar='<module>', help='Modules to enable debugging output for. Specify ' '`all` to enable debugging for all modules.') options = parser.parse_args(args) if options.action == 'log': if options.level != 'debug' and options.modules: parser.error('Modules can only be specified with `debug` logging level.') if not options.modules: options.modules = [ 'all' ] if options.level: # Protected member ok, hopefully this won't break #pylint: disable=W0212 options.level = logging._levelNames[options.level.upper()] return options
def parse_args(args): '''Parse command line''' parser = ArgumentParser( description="Manage S3QL Buckets.", epilog=textwrap.dedent('''\ Hint: run `%(prog)s <action> --help` to get help on the additional arguments that the different actions take.''')) pparser = ArgumentParser(add_help=False, epilog=textwrap.dedent('''\ Hint: run `%(prog)s --help` to get help on other available actions and optional arguments that can be used with all actions.''')) pparser.add_storage_url() subparsers = parser.add_subparsers(metavar='<action>', dest='action', help='may be either of') subparsers.add_parser("passphrase", help="change bucket passphrase", parents=[pparser]) subparsers.add_parser("upgrade", help="upgrade file system to newest revision", parents=[pparser]) subparsers.add_parser("clear", help="delete all S3QL data from the bucket", parents=[pparser]) subparsers.add_parser("download-metadata", help="Interactively download metadata backups. " "Use only if you know what you are doing.", parents=[pparser]) parser.add_debug_modules() parser.add_quiet() parser.add_log() parser.add_authfile() parser.add_cachedir() parser.add_version() options = parser.parse_args(args) return options