From c4792aebb012fd4aec00862629721b0edebff342 Mon Sep 17 00:00:00 2001 From: Florian Lindner Date: Sun, 30 Sep 2018 11:10:39 +0200 Subject: [PATCH 1/2] Implement json output for create_archive. This time correctly, hopyfully. --- borgmatic/borg/create.py | 3 ++- borgmatic/commands/borgmatic.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/borgmatic/borg/create.py b/borgmatic/borg/create.py index fb2fff93..843789ab 100644 --- a/borgmatic/borg/create.py +++ b/borgmatic/borg/create.py @@ -157,4 +157,5 @@ def create_archive( ) logger.debug(' '.join(full_command)) - subprocess.check_call(full_command) + output = subprocess.check_output(full_command) + return output.decode() if output is not None else None diff --git a/borgmatic/commands/borgmatic.py b/borgmatic/commands/borgmatic.py index 5ed6cb10..919ce117 100644 --- a/borgmatic/commands/borgmatic.py +++ b/borgmatic/commands/borgmatic.py @@ -176,14 +176,19 @@ def _run_commands_on_repository( ) if args.create: logger.info('{}: Creating archive{}'.format(repository, dry_run_label)) - borg_create.create_archive( + output = borg_create.create_archive( args.dry_run, repository, location, storage, local_path=local_path, remote_path=remote_path, + json=args.json, ) + if args.json: + json_results.append(json.loads(output)) + else: + sys.stdout.write(output) if args.check: logger.info('{}: Running consistency checks'.format(repository)) borg_check.check_archives( -- 2.40.1 From c57abcfda6ab89aefb823672d4079e1c3f47ac08 Mon Sep 17 00:00:00 2001 From: Florian Lindner Date: Sun, 30 Sep 2018 11:11:31 +0200 Subject: [PATCH 2/2] Pretty format json output. --- borgmatic/commands/borgmatic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/borgmatic/commands/borgmatic.py b/borgmatic/commands/borgmatic.py index 919ce117..b44c37ce 100644 --- a/borgmatic/commands/borgmatic.py +++ b/borgmatic/commands/borgmatic.py @@ -155,7 +155,7 @@ def _run_commands(args, consistency, local_path, location, remote_path, retentio unexpanded_repository, ) if args.json: - sys.stdout.write(json.dumps(json_results)) + sys.stdout.write(json.dumps(json_results, indent=2)) def _run_commands_on_repository( -- 2.40.1