Browse Source

Merge pull request #1912 from Abogical/prune-progress

Add prune progress display
enkore 8 years ago
parent
commit
a4eef67e3b
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/borg/archiver.py

+ 12 - 2
src/borg/archiver.py

@@ -1040,6 +1040,10 @@ class Archiver:
         stats = Statistics()
         stats = Statistics()
         with Cache(repository, key, manifest, do_files=args.cache_files, lock_wait=self.lock_wait) as cache:
         with Cache(repository, key, manifest, do_files=args.cache_files, lock_wait=self.lock_wait) as cache:
             list_logger = logging.getLogger('borg.output.list')
             list_logger = logging.getLogger('borg.output.list')
+            if args.output_list:
+                # set up counters for the progress display
+                to_delete_len = len(to_delete)
+                archives_deleted = 0
             for archive in archives_checkpoints:
             for archive in archives_checkpoints:
                 if archive in to_delete:
                 if archive in to_delete:
                     if args.dry_run:
                     if args.dry_run:
@@ -1047,8 +1051,11 @@ class Archiver:
                             list_logger.info('Would prune:     %s' % format_archive(archive))
                             list_logger.info('Would prune:     %s' % format_archive(archive))
                     else:
                     else:
                         if args.output_list:
                         if args.output_list:
-                            list_logger.info('Pruning archive: %s' % format_archive(archive))
-                        Archive(repository, key, manifest, archive.name, cache).delete(stats, forced=args.forced)
+                            archives_deleted += 1
+                            list_logger.info('Pruning archive: %s (%d/%d)' % (format_archive(archive),
+                                                                              archives_deleted, to_delete_len))
+                        Archive(repository, key, manifest, archive.name, cache,
+                                progress=args.progress).delete(stats, forced=args.forced)
                 else:
                 else:
                     if args.output_list:
                     if args.output_list:
                         list_logger.info('Keeping archive: %s' % format_archive(archive))
                         list_logger.info('Keeping archive: %s' % format_archive(archive))
@@ -2324,6 +2331,9 @@ class Archiver:
         subparser.add_argument('--force', dest='forced',
         subparser.add_argument('--force', dest='forced',
                                action='store_true', default=False,
                                action='store_true', default=False,
                                help='force pruning of corrupted archives')
                                help='force pruning of corrupted archives')
+        subparser.add_argument('-p', '--progress', dest='progress',
+                               action='store_true', default=False,
+                               help='show progress display while deleting archives')
         subparser.add_argument('-s', '--stats', dest='stats',
         subparser.add_argument('-s', '--stats', dest='stats',
                                action='store_true', default=False,
                                action='store_true', default=False,
                                help='print statistics for the deleted archive')
                                help='print statistics for the deleted archive')