mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-03 18:27:01 +00:00
add a --no-progress flag to forcibly disable progress info
--progress isn't a "toggle" anymore, in that it will never disable progress information: always enable it. example: $ borg create ~/test/borg2::test$(date +%s) . ; echo ^shows progress reading files cache processing files ^shows progress $ borg create ~/test/borg2::test$(date +%s) . < /dev/null; echo ^no progress reading files cache processing files ^no progress $ borg create --progress ~/test/borg2::test$(date +%s) . < /dev/null; echo ^progress forced reading files cache processing files ^progress forced $ borg create --no-progress ~/test/borg2::test$(date +%s) . ; echo ^no progress reading files cache processing files ^no progress we introduce a ToggleAction that can be used for other options, but right now is just slapped in there near the code, which isn't that elegant. inspired by: http://stackoverflow.com/questions/11507756/python-argparse-toggle-flags note that this is supported out of the box by click: http://click.pocoo.org/5/options/#boolean-flags fixes #398
This commit is contained in:
parent
3a72fbe418
commit
5be060d1f1
1 changed files with 16 additions and 2 deletions
|
@ -761,6 +761,19 @@ def build_parser(self, args=None, prog=None):
|
|||
See the output of the "borg help patterns" command for more help on exclude patterns.
|
||||
""")
|
||||
|
||||
class ToggleAction(argparse.Action):
|
||||
"""argparse action to handle "toggle" flags easily
|
||||
|
||||
toggle flags are in the form of ``--foo``, ``--no-foo``.
|
||||
|
||||
the ``--no-foo`` argument still needs to be passed to the
|
||||
``add_argument()`` call, but it simplifies the ``--no``
|
||||
detection.
|
||||
"""
|
||||
def __call__(self, parser, ns, values, option):
|
||||
"""set the given flag to true unless ``--no`` is passed"""
|
||||
setattr(ns, self.dest, not '--no' in option)
|
||||
|
||||
subparser = subparsers.add_parser('create', parents=[common_parser],
|
||||
description=self.do_create.__doc__,
|
||||
epilog=create_epilog,
|
||||
|
@ -769,8 +782,9 @@ def build_parser(self, args=None, prog=None):
|
|||
subparser.add_argument('-s', '--stats', dest='stats',
|
||||
action='store_true', default=False,
|
||||
help='print statistics for the created archive')
|
||||
subparser.add_argument('-p', '--progress', dest='progress', const=not sys.stderr.isatty(),
|
||||
action='store_const', default=sys.stdin.isatty(),
|
||||
subparser.add_argument('-p', '--progress', '--no-progress',
|
||||
dest='progress', default=sys.stdin.isatty(),
|
||||
action=ToggleAction, nargs=0,
|
||||
help="""toggle progress display while creating the archive, showing Original,
|
||||
Compressed and Deduplicated sizes, followed by the Number of files seen
|
||||
and the path being processed, default: %(default)s""")
|
||||
|
|
Loading…
Reference in a new issue