diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2022-02-17 13:53:03 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2022-02-17 13:53:03 +0100 |
commit | 2823c030a44b510a4e7db883f53dc825cb4abc55 (patch) | |
tree | 65003011c039d1b23bbc4665aed441d59c10bb2a /hosts/vidhar/borg | |
parent | 362ff67a0e958ec0d06ff223c73d57cd20310c77 (diff) | |
download | nixos-2823c030a44b510a4e7db883f53dc825cb4abc55.tar nixos-2823c030a44b510a4e7db883f53dc825cb4abc55.tar.gz nixos-2823c030a44b510a4e7db883f53dc825cb4abc55.tar.bz2 nixos-2823c030a44b510a4e7db883f53dc825cb4abc55.tar.xz nixos-2823c030a44b510a4e7db883f53dc825cb4abc55.zip |
vidhar: ...
Diffstat (limited to 'hosts/vidhar/borg')
-rwxr-xr-x | hosts/vidhar/borg/copy.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/hosts/vidhar/borg/copy.py b/hosts/vidhar/borg/copy.py index e574f2e0..cbd12469 100755 --- a/hosts/vidhar/borg/copy.py +++ b/hosts/vidhar/borg/copy.py | |||
@@ -57,26 +57,27 @@ class ToSync: | |||
57 | return self | 57 | return self |
58 | 58 | ||
59 | def __next__(self): | 59 | def __next__(self): |
60 | if to_sync: | ||
61 | return self.to_sync.pop() | ||
62 | |||
60 | while True: | 63 | while True: |
61 | try: | 64 | try: |
62 | if to_sync: | ||
63 | return self.to_sync.pop() | ||
64 | |||
65 | src = read_repo(args.source) | 65 | src = read_repo(args.source) |
66 | dst = read_repo(args.target) | 66 | dst = read_repo(args.target) |
67 | self.to_sync = set() | ||
68 | for entry in src: | ||
69 | if entry['name'] not in {dst_entry['name'] for dst_entry in dst} and not entry['name'].endswith('.checkpoint'): | ||
70 | self.to_sync.add(entry) | ||
71 | |||
72 | if to_sync: | ||
73 | return self.to_sync.pop() | ||
74 | |||
75 | raise StopIteration | ||
76 | except (subprocess.CalledProcessError, json.decoder.JSONDecodeError) as err: | 67 | except (subprocess.CalledProcessError, json.decoder.JSONDecodeError) as err: |
77 | print(err, file=stderr) | 68 | print(err, file=stderr) |
78 | continue | 69 | continue |
79 | 70 | ||
71 | self.to_sync = set() | ||
72 | for entry in src: | ||
73 | if entry['name'] not in {dst_entry['name'] for dst_entry in dst} and not entry['name'].endswith('.checkpoint'): | ||
74 | self.to_sync.add(entry) | ||
75 | |||
76 | if to_sync: | ||
77 | return self.to_sync.pop() | ||
78 | |||
79 | raise StopIteration | ||
80 | |||
80 | def copy_archive(src_repo_path, dst_repo_path, entry): | 81 | def copy_archive(src_repo_path, dst_repo_path, entry): |
81 | cache_suffix = None | 82 | cache_suffix = None |
82 | with Halo(text=f'Determine archive parameters', **halo_args) as sp: | 83 | with Halo(text=f'Determine archive parameters', **halo_args) as sp: |