mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-14 16:11:43 +00:00
[TASK] #4471 – borg help should print <command> list in sorted order: Step 6
Moved borg debug & delete.
This commit is contained in:
parent
e6b43ee5e9
commit
28172553db
1 changed files with 230 additions and 230 deletions
|
@ -3033,6 +3033,236 @@ class Archiver:
|
|||
subparser.add_argument('paths', metavar='PATH', nargs='*', type=str,
|
||||
help='paths to archive')
|
||||
|
||||
# borg debug
|
||||
debug_epilog = process_epilog("""
|
||||
These commands are not intended for normal use and potentially very
|
||||
dangerous if used incorrectly.
|
||||
|
||||
They exist to improve debugging capabilities without direct system access, e.g.
|
||||
in case you ever run into some severe malfunction. Use them only if you know
|
||||
what you are doing or if a trusted developer tells you what to do.""")
|
||||
|
||||
subparser = subparsers.add_parser('debug', parents=[mid_common_parser], add_help=False,
|
||||
description='debugging command (not intended for normal use)',
|
||||
epilog=debug_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='debugging command (not intended for normal use)')
|
||||
|
||||
debug_parsers = subparser.add_subparsers(title='required arguments', metavar='<command>')
|
||||
subparser.set_defaults(fallback_func=functools.partial(self.do_subcommand_help, subparser))
|
||||
|
||||
debug_info_epilog = process_epilog("""
|
||||
This command displays some system information that might be useful for bug
|
||||
reports and debugging problems. If a traceback happens, this information is
|
||||
already appended at the end of the traceback.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('info', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_info.__doc__,
|
||||
epilog=debug_info_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='show system infos for debugging / bug reports (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_info)
|
||||
|
||||
debug_dump_archive_items_epilog = process_epilog("""
|
||||
This command dumps raw (but decrypted and decompressed) archive items (only metadata) to files.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-archive-items', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_archive_items.__doc__,
|
||||
epilog=debug_dump_archive_items_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump archive items (metadata) (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_archive_items)
|
||||
subparser.add_argument('location', metavar='ARCHIVE',
|
||||
type=location_validator(archive=True),
|
||||
help='archive to dump')
|
||||
|
||||
debug_dump_archive_epilog = process_epilog("""
|
||||
This command dumps all metadata of an archive in a decoded form to a file.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-archive', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_archive.__doc__,
|
||||
epilog=debug_dump_archive_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump decoded archive metadata (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_archive)
|
||||
subparser.add_argument('location', metavar='ARCHIVE',
|
||||
type=location_validator(archive=True),
|
||||
help='archive to dump')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to dump data into')
|
||||
|
||||
debug_dump_manifest_epilog = process_epilog("""
|
||||
This command dumps manifest metadata of a repository in a decoded form to a file.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-manifest', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_manifest.__doc__,
|
||||
epilog=debug_dump_manifest_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump decoded repository metadata (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_manifest)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to dump')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to dump data into')
|
||||
|
||||
debug_dump_repo_objs_epilog = process_epilog("""
|
||||
This command dumps raw (but decrypted and decompressed) repo objects to files.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-repo-objs', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_repo_objs.__doc__,
|
||||
epilog=debug_dump_repo_objs_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump repo objects (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_repo_objs)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repo to dump')
|
||||
subparser.add_argument('--ghost', dest='ghost', action='store_true',
|
||||
help='dump all segment file contents, including deleted/uncommitted objects and commits.')
|
||||
|
||||
debug_search_repo_objs_epilog = process_epilog("""
|
||||
This command searches raw (but decrypted and decompressed) repo objects for a specific bytes sequence.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('search-repo-objs', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_search_repo_objs.__doc__,
|
||||
epilog=debug_search_repo_objs_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='search repo objects (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_search_repo_objs)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repo to search')
|
||||
subparser.add_argument('wanted', metavar='WANTED', type=str,
|
||||
help='term to search the repo for, either 0x1234abcd hex term or a string')
|
||||
|
||||
debug_get_obj_epilog = process_epilog("""
|
||||
This command gets an object from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('get-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_get_obj.__doc__,
|
||||
epilog=debug_get_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='get object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_get_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('id', metavar='ID', type=str,
|
||||
help='hex object ID to get from the repo')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to write object data into')
|
||||
|
||||
debug_put_obj_epilog = process_epilog("""
|
||||
This command puts objects into the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('put-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_put_obj.__doc__,
|
||||
epilog=debug_put_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='put object to repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_put_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('paths', metavar='PATH', nargs='+', type=str,
|
||||
help='file(s) to read and create object(s) from')
|
||||
|
||||
debug_delete_obj_epilog = process_epilog("""
|
||||
This command deletes objects from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('delete-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_delete_obj.__doc__,
|
||||
epilog=debug_delete_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='delete object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_delete_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('ids', metavar='IDs', nargs='+', type=str,
|
||||
help='hex object ID(s) to delete from the repo')
|
||||
|
||||
debug_refcount_obj_epilog = process_epilog("""
|
||||
This command displays the reference count for objects from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('refcount-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_refcount_obj.__doc__,
|
||||
epilog=debug_refcount_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='show refcount for object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_refcount_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('ids', metavar='IDs', nargs='+', type=str,
|
||||
help='hex object ID(s) to show refcounts for')
|
||||
|
||||
debug_convert_profile_epilog = process_epilog("""
|
||||
Convert a Borg profile to a Python cProfile compatible profile.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('convert-profile', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_convert_profile.__doc__,
|
||||
epilog=debug_convert_profile_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='convert Borg profile to Python profile (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_convert_profile)
|
||||
subparser.add_argument('input', metavar='INPUT', type=argparse.FileType('rb'),
|
||||
help='Borg profile')
|
||||
subparser.add_argument('output', metavar='OUTPUT', type=argparse.FileType('wb'),
|
||||
help='Output file')
|
||||
|
||||
# borg delete
|
||||
delete_epilog = process_epilog("""
|
||||
This command deletes an archive from the repository or the complete repository.
|
||||
|
||||
Important: When deleting archives, repository disk space is **not** freed until
|
||||
you run ``borg compact``.
|
||||
|
||||
If you delete the complete repository, the local cache for it (if any) is
|
||||
also deleted. Alternatively, you can delete just the local cache with the
|
||||
``--cache-only`` option.
|
||||
|
||||
When using ``--stats``, you will get some statistics about how much data was
|
||||
deleted - the "Deleted data" deduplicated size there is most interesting as
|
||||
that is how much your repository will shrink.
|
||||
Please note that the "All archives" stats refer to the state after deletion.
|
||||
|
||||
You can delete multiple archives by specifying their common prefix, if they
|
||||
have one, using the ``--prefix PREFIX`` option. You can also specify a shell
|
||||
pattern to match multiple archives using the ``--glob-archives GLOB`` option
|
||||
(for more info on these patterns, see ``borg help patterns``). Note that these
|
||||
two options are mutually exclusive.
|
||||
|
||||
To avoid accidentally deleting archives, especially when using glob patterns,
|
||||
it might be helpful to use the ``--dry-run`` to test out the command without
|
||||
actually making any changes to the repository.
|
||||
""")
|
||||
subparser = subparsers.add_parser('delete', parents=[common_parser], add_help=False,
|
||||
description=self.do_delete.__doc__,
|
||||
epilog=delete_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='delete archive')
|
||||
subparser.set_defaults(func=self.do_delete)
|
||||
subparser.add_argument('-n', '--dry-run', dest='dry_run', action='store_true',
|
||||
help='do not change repository')
|
||||
subparser.add_argument('-s', '--stats', dest='stats', action='store_true',
|
||||
help='print statistics for the deleted archive')
|
||||
subparser.add_argument('--cache-only', dest='cache_only', action='store_true',
|
||||
help='delete only the local cache for the given repository')
|
||||
subparser.add_argument('--force', dest='forced',
|
||||
action='count', default=0,
|
||||
help='force deletion of corrupted archives, '
|
||||
'use ``--force --force`` in case ``--force`` does not work.')
|
||||
subparser.add_argument('--save-space', dest='save_space', action='store_true',
|
||||
help='work slower, but using less space')
|
||||
subparser.add_argument('location', metavar='TARGET', nargs='?', default='',
|
||||
type=location_validator(),
|
||||
help='archive or repository to delete')
|
||||
subparser.add_argument('archives', metavar='ARCHIVE', nargs='*',
|
||||
help='archives to delete')
|
||||
define_archive_filters_group(subparser)
|
||||
|
||||
# borg mount
|
||||
mount_epilog = process_epilog("""
|
||||
This command mounts an archive as a FUSE filesystem. This can be useful for
|
||||
|
@ -3534,57 +3764,6 @@ class Archiver:
|
|||
type=archivename_validator(),
|
||||
help='the new archive name to use')
|
||||
|
||||
# borg delete
|
||||
delete_epilog = process_epilog("""
|
||||
This command deletes an archive from the repository or the complete repository.
|
||||
|
||||
Important: When deleting archives, repository disk space is **not** freed until
|
||||
you run ``borg compact``.
|
||||
|
||||
If you delete the complete repository, the local cache for it (if any) is
|
||||
also deleted. Alternatively, you can delete just the local cache with the
|
||||
``--cache-only`` option.
|
||||
|
||||
When using ``--stats``, you will get some statistics about how much data was
|
||||
deleted - the "Deleted data" deduplicated size there is most interesting as
|
||||
that is how much your repository will shrink.
|
||||
Please note that the "All archives" stats refer to the state after deletion.
|
||||
|
||||
You can delete multiple archives by specifying their common prefix, if they
|
||||
have one, using the ``--prefix PREFIX`` option. You can also specify a shell
|
||||
pattern to match multiple archives using the ``--glob-archives GLOB`` option
|
||||
(for more info on these patterns, see ``borg help patterns``). Note that these
|
||||
two options are mutually exclusive.
|
||||
|
||||
To avoid accidentally deleting archives, especially when using glob patterns,
|
||||
it might be helpful to use the ``--dry-run`` to test out the command without
|
||||
actually making any changes to the repository.
|
||||
""")
|
||||
subparser = subparsers.add_parser('delete', parents=[common_parser], add_help=False,
|
||||
description=self.do_delete.__doc__,
|
||||
epilog=delete_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='delete archive')
|
||||
subparser.set_defaults(func=self.do_delete)
|
||||
subparser.add_argument('-n', '--dry-run', dest='dry_run', action='store_true',
|
||||
help='do not change repository')
|
||||
subparser.add_argument('-s', '--stats', dest='stats', action='store_true',
|
||||
help='print statistics for the deleted archive')
|
||||
subparser.add_argument('--cache-only', dest='cache_only', action='store_true',
|
||||
help='delete only the local cache for the given repository')
|
||||
subparser.add_argument('--force', dest='forced',
|
||||
action='count', default=0,
|
||||
help='force deletion of corrupted archives, '
|
||||
'use ``--force --force`` in case ``--force`` does not work.')
|
||||
subparser.add_argument('--save-space', dest='save_space', action='store_true',
|
||||
help='work slower, but using less space')
|
||||
subparser.add_argument('location', metavar='TARGET', nargs='?', default='',
|
||||
type=location_validator(),
|
||||
help='archive or repository to delete')
|
||||
subparser.add_argument('archives', metavar='ARCHIVE', nargs='*',
|
||||
help='archives to delete')
|
||||
define_archive_filters_group(subparser)
|
||||
|
||||
# borg list
|
||||
list_epilog = process_epilog("""
|
||||
This command lists the contents of a repository or an archive.
|
||||
|
@ -4013,185 +4192,6 @@ class Archiver:
|
|||
subparser.add_argument('args', metavar='ARGS', nargs=argparse.REMAINDER,
|
||||
help='command arguments')
|
||||
|
||||
# borg debug
|
||||
debug_epilog = process_epilog("""
|
||||
These commands are not intended for normal use and potentially very
|
||||
dangerous if used incorrectly.
|
||||
|
||||
They exist to improve debugging capabilities without direct system access, e.g.
|
||||
in case you ever run into some severe malfunction. Use them only if you know
|
||||
what you are doing or if a trusted developer tells you what to do.""")
|
||||
|
||||
subparser = subparsers.add_parser('debug', parents=[mid_common_parser], add_help=False,
|
||||
description='debugging command (not intended for normal use)',
|
||||
epilog=debug_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='debugging command (not intended for normal use)')
|
||||
|
||||
debug_parsers = subparser.add_subparsers(title='required arguments', metavar='<command>')
|
||||
subparser.set_defaults(fallback_func=functools.partial(self.do_subcommand_help, subparser))
|
||||
|
||||
debug_info_epilog = process_epilog("""
|
||||
This command displays some system information that might be useful for bug
|
||||
reports and debugging problems. If a traceback happens, this information is
|
||||
already appended at the end of the traceback.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('info', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_info.__doc__,
|
||||
epilog=debug_info_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='show system infos for debugging / bug reports (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_info)
|
||||
|
||||
debug_dump_archive_items_epilog = process_epilog("""
|
||||
This command dumps raw (but decrypted and decompressed) archive items (only metadata) to files.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-archive-items', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_archive_items.__doc__,
|
||||
epilog=debug_dump_archive_items_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump archive items (metadata) (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_archive_items)
|
||||
subparser.add_argument('location', metavar='ARCHIVE',
|
||||
type=location_validator(archive=True),
|
||||
help='archive to dump')
|
||||
|
||||
debug_dump_archive_epilog = process_epilog("""
|
||||
This command dumps all metadata of an archive in a decoded form to a file.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-archive', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_archive.__doc__,
|
||||
epilog=debug_dump_archive_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump decoded archive metadata (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_archive)
|
||||
subparser.add_argument('location', metavar='ARCHIVE',
|
||||
type=location_validator(archive=True),
|
||||
help='archive to dump')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to dump data into')
|
||||
|
||||
debug_dump_manifest_epilog = process_epilog("""
|
||||
This command dumps manifest metadata of a repository in a decoded form to a file.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-manifest', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_manifest.__doc__,
|
||||
epilog=debug_dump_manifest_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump decoded repository metadata (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_manifest)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to dump')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to dump data into')
|
||||
|
||||
debug_dump_repo_objs_epilog = process_epilog("""
|
||||
This command dumps raw (but decrypted and decompressed) repo objects to files.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('dump-repo-objs', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_dump_repo_objs.__doc__,
|
||||
epilog=debug_dump_repo_objs_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='dump repo objects (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_dump_repo_objs)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repo to dump')
|
||||
subparser.add_argument('--ghost', dest='ghost', action='store_true',
|
||||
help='dump all segment file contents, including deleted/uncommitted objects and commits.')
|
||||
|
||||
debug_search_repo_objs_epilog = process_epilog("""
|
||||
This command searches raw (but decrypted and decompressed) repo objects for a specific bytes sequence.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('search-repo-objs', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_search_repo_objs.__doc__,
|
||||
epilog=debug_search_repo_objs_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='search repo objects (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_search_repo_objs)
|
||||
subparser.add_argument('location', metavar='REPOSITORY',
|
||||
type=location_validator(archive=False),
|
||||
help='repo to search')
|
||||
subparser.add_argument('wanted', metavar='WANTED', type=str,
|
||||
help='term to search the repo for, either 0x1234abcd hex term or a string')
|
||||
|
||||
debug_get_obj_epilog = process_epilog("""
|
||||
This command gets an object from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('get-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_get_obj.__doc__,
|
||||
epilog=debug_get_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='get object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_get_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('id', metavar='ID', type=str,
|
||||
help='hex object ID to get from the repo')
|
||||
subparser.add_argument('path', metavar='PATH', type=str,
|
||||
help='file to write object data into')
|
||||
|
||||
debug_put_obj_epilog = process_epilog("""
|
||||
This command puts objects into the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('put-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_put_obj.__doc__,
|
||||
epilog=debug_put_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='put object to repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_put_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('paths', metavar='PATH', nargs='+', type=str,
|
||||
help='file(s) to read and create object(s) from')
|
||||
|
||||
debug_delete_obj_epilog = process_epilog("""
|
||||
This command deletes objects from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('delete-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_delete_obj.__doc__,
|
||||
epilog=debug_delete_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='delete object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_delete_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('ids', metavar='IDs', nargs='+', type=str,
|
||||
help='hex object ID(s) to delete from the repo')
|
||||
|
||||
debug_refcount_obj_epilog = process_epilog("""
|
||||
This command displays the reference count for objects from the repository.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('refcount-obj', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_refcount_obj.__doc__,
|
||||
epilog=debug_refcount_obj_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='show refcount for object from repository (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_refcount_obj)
|
||||
subparser.add_argument('location', metavar='REPOSITORY', nargs='?', default='',
|
||||
type=location_validator(archive=False),
|
||||
help='repository to use')
|
||||
subparser.add_argument('ids', metavar='IDs', nargs='+', type=str,
|
||||
help='hex object ID(s) to show refcounts for')
|
||||
|
||||
debug_convert_profile_epilog = process_epilog("""
|
||||
Convert a Borg profile to a Python cProfile compatible profile.
|
||||
""")
|
||||
subparser = debug_parsers.add_parser('convert-profile', parents=[common_parser], add_help=False,
|
||||
description=self.do_debug_convert_profile.__doc__,
|
||||
epilog=debug_convert_profile_epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
help='convert Borg profile to Python profile (debug)')
|
||||
subparser.set_defaults(func=self.do_debug_convert_profile)
|
||||
subparser.add_argument('input', metavar='INPUT', type=argparse.FileType('rb'),
|
||||
help='Borg profile')
|
||||
subparser.add_argument('output', metavar='OUTPUT', type=argparse.FileType('wb'),
|
||||
help='Output file')
|
||||
|
||||
return parser
|
||||
|
||||
def get_args(self, argv, cmd):
|
||||
|
|
Loading…
Add table
Reference in a new issue