From 7d40a448cbdc1d91fa3b05b36e29ebb16e3c9821 Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Sun, 19 Aug 2018 12:44:40 -0700 Subject: [PATCH] Pass --show-rc option to Borg when at highest verbosity level (#89). --- NEWS | 1 + borgmatic/borg/check.py | 2 +- borgmatic/borg/create.py | 4 ++-- borgmatic/borg/extract.py | 2 +- borgmatic/borg/info.py | 2 +- borgmatic/borg/list.py | 2 +- borgmatic/borg/prune.py | 2 +- borgmatic/tests/unit/borg/test_check.py | 2 +- borgmatic/tests/unit/borg/test_create.py | 4 ++-- borgmatic/tests/unit/borg/test_extract.py | 4 ++-- borgmatic/tests/unit/borg/test_info.py | 2 +- borgmatic/tests/unit/borg/test_list.py | 2 +- borgmatic/tests/unit/borg/test_prune.py | 2 +- scripts/find-unsupported-borg-options | 1 + 14 files changed, 17 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 4b0043d2c..4b92e4de5 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ borgmatic's storage configuration. * #88: Fix declared pykwalify compatibility version range in setup.py to prevent use of ancient versions of pykwalify with large version numbers. + * #89: Pass --show-rc option to Borg when at highest verbosity level. 1.2.2 * #85: Fix compatibility issue between pykwalify and ruamel.yaml 0.15.52, which manifested in diff --git a/borgmatic/borg/check.py b/borgmatic/borg/check.py index d5bdb8202..9d340dfe5 100644 --- a/borgmatic/borg/check.py +++ b/borgmatic/borg/check.py @@ -93,7 +93,7 @@ def check_archives(verbosity, repository, storage_config, consistency_config, lo lock_wait_flags = ('--lock-wait', str(lock_wait)) if lock_wait else () verbosity_flags = { VERBOSITY_SOME: ('--info',), - VERBOSITY_LOTS: ('--debug',), + VERBOSITY_LOTS: ('--debug', '--show-rc'), }.get(verbosity, ()) prefix = consistency_config.get('prefix') diff --git a/borgmatic/borg/create.py b/borgmatic/borg/create.py index 3b8c9d9f8..1f038780a 100644 --- a/borgmatic/borg/create.py +++ b/borgmatic/borg/create.py @@ -151,8 +151,8 @@ def create_archive( + (('--umask', str(umask)) if umask else ()) + (('--lock-wait', str(lock_wait)) if lock_wait else ()) + { - VERBOSITY_SOME: ('--info',) if dry_run else ('--info', '--stats',), - VERBOSITY_LOTS: ('--debug', '--list',) if dry_run else ('--debug', '--list', '--stats',), + VERBOSITY_SOME: ('--info',) if dry_run else ('--info', '--stats'), + VERBOSITY_LOTS: ('--debug', '--list', '--show-rc') if dry_run else ('--debug', '--list', '--show-rc', '--stats'), }.get(verbosity, ()) + (('--dry-run',) if dry_run else ()) ) diff --git a/borgmatic/borg/extract.py b/borgmatic/borg/extract.py index d3d62a3c8..8318c4c8c 100644 --- a/borgmatic/borg/extract.py +++ b/borgmatic/borg/extract.py @@ -17,7 +17,7 @@ def extract_last_archive_dry_run(verbosity, repository, lock_wait=None, local_pa lock_wait_flags = ('--lock-wait', str(lock_wait)) if lock_wait else () verbosity_flags = { VERBOSITY_SOME: ('--info',), - VERBOSITY_LOTS: ('--debug',), + VERBOSITY_LOTS: ('--debug', '--show-rc'), }.get(verbosity, ()) full_list_command = ( diff --git a/borgmatic/borg/info.py b/borgmatic/borg/info.py index b7417a803..1925374b2 100644 --- a/borgmatic/borg/info.py +++ b/borgmatic/borg/info.py @@ -23,7 +23,7 @@ def display_archives_info( + (('--json',) if json else ()) + { VERBOSITY_SOME: ('--info',), - VERBOSITY_LOTS: ('--debug',), + VERBOSITY_LOTS: ('--debug', '--show-rc'), }.get(verbosity, ()) ) diff --git a/borgmatic/borg/list.py b/borgmatic/borg/list.py index 30427814f..521ccd53b 100644 --- a/borgmatic/borg/list.py +++ b/borgmatic/borg/list.py @@ -23,7 +23,7 @@ def list_archives( + (('--json',) if json else ()) + { VERBOSITY_SOME: ('--info',), - VERBOSITY_LOTS: ('--debug',), + VERBOSITY_LOTS: ('--debug', '--show-rc'), }.get(verbosity, ()) ) diff --git a/borgmatic/borg/prune.py b/borgmatic/borg/prune.py index 09e1c9b3d..2a04b3862 100644 --- a/borgmatic/borg/prune.py +++ b/borgmatic/borg/prune.py @@ -56,7 +56,7 @@ def prune_archives(verbosity, dry_run, repository, storage_config, retention_con + (('--lock-wait', str(lock_wait)) if lock_wait else ()) + { VERBOSITY_SOME: ('--info', '--stats',), - VERBOSITY_LOTS: ('--debug', '--stats', '--list'), + VERBOSITY_LOTS: ('--debug', '--stats', '--list', '--show-rc'), }.get(verbosity, ()) + (('--dry-run',) if dry_run else ()) ) diff --git a/borgmatic/tests/unit/borg/test_check.py b/borgmatic/tests/unit/borg/test_check.py index b5d83786f..b6208dd0c 100644 --- a/borgmatic/tests/unit/borg/test_check.py +++ b/borgmatic/tests/unit/borg/test_check.py @@ -173,7 +173,7 @@ def test_check_archives_with_verbosity_lots_calls_borg_with_debug_parameter(): flexmock(module).should_receive('_parse_checks').and_return(checks) flexmock(module).should_receive('_make_check_flags').and_return(()) insert_subprocess_mock( - ('borg', 'check', 'repo', '--debug'), + ('borg', 'check', 'repo', '--debug', '--show-rc'), stdout=None, stderr=STDOUT, ) diff --git a/borgmatic/tests/unit/borg/test_create.py b/borgmatic/tests/unit/borg/test_create.py index f918ae13d..16bea78e8 100644 --- a/borgmatic/tests/unit/borg/test_create.py +++ b/borgmatic/tests/unit/borg/test_create.py @@ -296,7 +296,7 @@ def test_create_archive_with_verbosity_lots_calls_borg_with_debug_parameter(): flexmock(module).should_receive('_write_pattern_file').and_return(None) flexmock(module).should_receive('_make_pattern_flags').and_return(()) flexmock(module).should_receive('_make_exclude_flags').and_return(()) - insert_subprocess_mock(CREATE_COMMAND + ('--debug', '--list', '--stats')) + insert_subprocess_mock(CREATE_COMMAND + ('--debug', '--list', '--show-rc', '--stats')) module.create_archive( verbosity=VERBOSITY_LOTS, @@ -359,7 +359,7 @@ def test_create_archive_with_dry_run_and_verbosity_lots_calls_borg_without_stats flexmock(module).should_receive('_make_pattern_flags').and_return(()) flexmock(module).should_receive('_make_pattern_flags').and_return(()) flexmock(module).should_receive('_make_exclude_flags').and_return(()) - insert_subprocess_mock(CREATE_COMMAND + ('--debug', '--list', '--dry-run')) + insert_subprocess_mock(CREATE_COMMAND + ('--debug', '--list', '--show-rc', '--dry-run')) module.create_archive( verbosity=VERBOSITY_LOTS, diff --git a/borgmatic/tests/unit/borg/test_extract.py b/borgmatic/tests/unit/borg/test_extract.py index 9811a7864..e8c377d19 100644 --- a/borgmatic/tests/unit/borg/test_extract.py +++ b/borgmatic/tests/unit/borg/test_extract.py @@ -73,11 +73,11 @@ def test_extract_last_archive_dry_run_with_verbosity_some_should_call_borg_with_ def test_extract_last_archive_dry_run_with_verbosity_lots_should_call_borg_with_debug_parameter(): flexmock(sys.stdout).encoding = 'utf-8' insert_subprocess_check_output_mock( - ('borg', 'list', '--short', 'repo', '--debug'), + ('borg', 'list', '--short', 'repo', '--debug', '--show-rc'), result='archive1\narchive2\n'.encode('utf-8'), ) insert_subprocess_mock( - ('borg', 'extract', '--dry-run', 'repo::archive2', '--debug', '--list'), + ('borg', 'extract', '--dry-run', 'repo::archive2', '--debug', '--show-rc', '--list'), ) module.extract_last_archive_dry_run( diff --git a/borgmatic/tests/unit/borg/test_info.py b/borgmatic/tests/unit/borg/test_info.py index 43e881e27..1cfc8f3b9 100644 --- a/borgmatic/tests/unit/borg/test_info.py +++ b/borgmatic/tests/unit/borg/test_info.py @@ -35,7 +35,7 @@ def test_display_archives_info_with_verbosity_some_calls_borg_with_info_paramete def test_display_archives_info_with_verbosity_lots_calls_borg_with_debug_parameter(): - insert_subprocess_mock(INFO_COMMAND + ('--debug',)) + insert_subprocess_mock(INFO_COMMAND + ('--debug', '--show-rc')) module.display_archives_info( repository='repo', diff --git a/borgmatic/tests/unit/borg/test_list.py b/borgmatic/tests/unit/borg/test_list.py index 48bd095ab..01eec3061 100644 --- a/borgmatic/tests/unit/borg/test_list.py +++ b/borgmatic/tests/unit/borg/test_list.py @@ -35,7 +35,7 @@ def test_list_archives_with_verbosity_some_calls_borg_with_info_parameter(): def test_list_archives_with_verbosity_lots_calls_borg_with_debug_parameter(): - insert_subprocess_mock(LIST_COMMAND + ('--debug',)) + insert_subprocess_mock(LIST_COMMAND + ('--debug', '--show-rc')) module.list_archives( repository='repo', diff --git a/borgmatic/tests/unit/borg/test_prune.py b/borgmatic/tests/unit/borg/test_prune.py index 6e3a20df8..dccdfa878 100644 --- a/borgmatic/tests/unit/borg/test_prune.py +++ b/borgmatic/tests/unit/borg/test_prune.py @@ -92,7 +92,7 @@ def test_prune_archives_with_verbosity_lots_calls_borg_with_debug_parameter(): flexmock(module).should_receive('_make_prune_flags').with_args(retention_config).and_return( BASE_PRUNE_FLAGS, ) - insert_subprocess_mock(PRUNE_COMMAND + ('--debug', '--stats', '--list')) + insert_subprocess_mock(PRUNE_COMMAND + ('--debug', '--stats', '--list', '--show-rc')) module.prune_archives( repository='repo', diff --git a/scripts/find-unsupported-borg-options b/scripts/find-unsupported-borg-options index 723aeffbb..66188bd57 100755 --- a/scripts/find-unsupported-borg-options +++ b/scripts/find-unsupported-borg-options @@ -37,6 +37,7 @@ for sub_command in prune create check list info; do | grep -v '^--nobsdflags$' \ | grep -v '^--pattern$' \ | grep -v '^--repository-only$' \ + | grep -v '^--show-rc$' \ | grep -v '^--stats$' \ | grep -v '^--verbose$' \ | grep -v '^--warning$' \