From f8cfcef029c10987de6f8952a19bd17b3706bd49 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 22 Oct 2024 14:18:46 +0200 Subject: [PATCH] refactor: move latest snapshot checking --- backupbot.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/backupbot.py b/backupbot.py index 624510d..801526a 100755 --- a/backupbot.py +++ b/backupbot.py @@ -411,6 +411,12 @@ def snapshots(): @click.option('snapshot', '--snapshot', '-s', envvar='SNAPSHOT', default='latest') @click.option('path', '--path', '-p', envvar='INCLUDE_PATH') def ls(snapshot, path): + if snapshot == 'latest': + latest_snapshot = get_snapshots('latest') + if not latest_snapshot: + logger.error(f"There is no latest snapshot for {SERVICE}") + exit(1) + snapshot = latest_snapshot[0]['short_id'] results = list_files(snapshot, path) for r in results: if r.get('path'): @@ -419,12 +425,6 @@ def ls(snapshot, path): def list_files(snapshot, path): cmd = restic.cat.base_command() + ['ls'] - if snapshot == 'latest': - latest_snapshot = get_snapshots('latest') - if not latest_snapshot: - logger.error(f"There is no latest snapshot for {SERVICE}") - exit(1) - snapshot = latest_snapshot[0]['short_id'] cmd.append(snapshot) if path: cmd.append(path) @@ -451,6 +451,12 @@ def list_files(snapshot, path): @click.option('secrets', '--secrets', '-c', is_flag=True, envvar='SECRETS') def download(snapshot, path, volumes, secrets): file_dumps = [] + if snapshot == 'latest': + latest_snapshot = get_snapshots('latest') + if not latest_snapshot: + logger.error(f"There is no latest snapshot for {SERVICE}") + exit(1) + snapshot = latest_snapshot[0]['short_id'] if not any([path, volumes, secrets]): volumes = secrets = True if path: @@ -515,12 +521,6 @@ def get_formatted_size(file_path): def dump(snapshot, path): cmd = restic.cat.base_command() + ['dump'] - if snapshot == 'latest': - latest_snapshot = get_snapshots('latest') - if not latest_snapshot: - logger.error(f"There is no latest snapshot for {SERVICE}") - exit(1) - snapshot = latest_snapshot[0]['short_id'] cmd = cmd + [snapshot, path] print(f"Dumping {path} from snapshot '{snapshot}'") output = subprocess.run(cmd, capture_output=True)