create and add content to borgmatic-manifest.json

This commit is contained in:
Divyansh Singh 2023-05-16 00:24:19 +05:30
parent 1bc7bb4971
commit 49b4d371ce

View file

@ -1,4 +1,5 @@
import json import json
import os
import logging import logging
import borgmatic.borg.create import borgmatic.borg.create
@ -7,9 +8,30 @@ import borgmatic.hooks.command
import borgmatic.hooks.dispatch import borgmatic.hooks.dispatch
import borgmatic.hooks.dump import borgmatic.hooks.dump
from borgmatic.borg.state import DEFAULT_BORGMATIC_SOURCE_DIRECTORY
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def create_borgmatic_manifest(location, config_paths, dry_run):
'''
Create a borgmatic manifest file to store the paths to the configuration files used to create
the archive.
'''
if dry_run:
return
borgmatic_source_directory = location.get('borgmatic_source_directory') if location.get('borgmatic_source_directory') else DEFAULT_BORGMATIC_SOURCE_DIRECTORY
borgmatic_manifest_path = os.path.expanduser(os.path.join(borgmatic_source_directory, 'bootstrap', 'configs-list.json'))
if not os.path.exists(borgmatic_manifest_path):
os.makedirs(os.path.dirname(borgmatic_manifest_path), exist_ok=True)
with open(borgmatic_manifest_path, 'w') as f:
json.dump(config_paths, f)
def run_create( def run_create(
config_filename, config_filename,
repository, repository,
@ -59,6 +81,7 @@ def run_create(
location, location,
global_arguments.dry_run, global_arguments.dry_run,
) )
create_borgmatic_manifest(location, global_arguments.config_paths, global_arguments.dry_run)
stream_processes = [process for processes in active_dumps.values() for process in processes] stream_processes = [process for processes in active_dumps.values() for process in processes]
json_output = borgmatic.borg.create.create_archive( json_output = borgmatic.borg.create.create_archive(