Add a new backup.py command to print the duplicity command to the console to help debugging

This commit is contained in:
Joshua Tauberer 2023-09-02 07:49:41 -04:00
parent 7be687e601
commit 08defb12be
1 changed files with 16 additions and 0 deletions

View File

@ -418,6 +418,19 @@ def run_duplicity_restore(args):
] + args,
get_duplicity_env_vars(env))
def print_duplicity_command():
import shlex
env = load_environment()
config = get_backup_config(env)
backup_cache_dir = os.path.join(env["STORAGE_ROOT"], 'backup', 'cache')
for k, v in get_duplicity_env_vars(env).items():
print(f"export {k}={shlex.quote(v)}")
print("duplicity", "{command}", shlex.join([
"--archive-dir", backup_cache_dir,
] + get_duplicity_additional_args(env) + [
get_duplicity_target_url(config)
]))
def list_target_files(config):
import urllib.parse
try:
@ -624,6 +637,9 @@ if __name__ == "__main__":
# to duplicity. The restore path should be specified.
run_duplicity_restore(sys.argv[2:])
elif sys.argv[-1] == "--duplicity-command":
print_duplicity_command()
else:
# Perform a backup. Add --full to force a full backup rather than
# possibly performing an incremental backup.