From 8ad309ae2a5479d146f679c561db6b154d719cd7 Mon Sep 17 00:00:00 2001 From: Marian Beermann Date: Sat, 3 Jun 2017 15:47:01 +0200 Subject: [PATCH] recreate: if single archive is not processed, exit 2 --- src/borg/archive.py | 4 ++-- src/borg/archiver.py | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/borg/archive.py b/src/borg/archive.py index 8337a974f..b72bbda44 100644 --- a/src/borg/archive.py +++ b/src/borg/archive.py @@ -1612,11 +1612,11 @@ def recreate(self, archive_name, comment=None, target_name=None): if self.exclude_if_present or self.exclude_caches: self.matcher_add_tagged_dirs(archive) if self.matcher.empty() and not self.recompress and not target.recreate_rechunkify and comment is None: - logger.info("Skipping archive %s, nothing to do", archive_name) - return + return False self.process_items(archive, target) replace_original = target_name is None self.save(archive, target, comment, replace_original=replace_original) + return True def process_items(self, archive, target): matcher = self.matcher diff --git a/src/borg/archiver.py b/src/borg/archiver.py index 2081b44ec..82b51638b 100644 --- a/src/borg/archiver.py +++ b/src/borg/archiver.py @@ -1598,7 +1598,9 @@ def do_recreate(self, args, repository, manifest, key, cache): if recreater.is_temporary_archive(name): self.print_error('Refusing to work on temporary archive of prior recreate: %s', name) return self.exit_code - recreater.recreate(name, args.comment, target) + if not recreater.recreate(name, args.comment, target): + self.print_error('Nothing to do. Archive was not processed.\n' + 'Specify at least one pattern, PATH, --comment, re-compression or re-chunking option.') else: if args.target is not None: self.print_error('--target: Need to specify single archive') @@ -1608,7 +1610,8 @@ def do_recreate(self, args, repository, manifest, key, cache): if recreater.is_temporary_archive(name): continue print('Processing', name) - recreater.recreate(name, args.comment) + if not recreater.recreate(name, args.comment): + logger.info('Skipped archive %s: Nothing to do. Archive was not processed.', name) if not args.dry_run: manifest.write() repository.commit()