diff options
Diffstat (limited to 'hosts')
-rwxr-xr-x | hosts/vidhar/borg/copy.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/hosts/vidhar/borg/copy.py b/hosts/vidhar/borg/copy.py index 2ee4761d..46c9bcee 100755 --- a/hosts/vidhar/borg/copy.py +++ b/hosts/vidhar/borg/copy.py | |||
@@ -71,13 +71,23 @@ def read_repo(path): | |||
71 | 71 | ||
72 | class ToSync: | 72 | class ToSync: |
73 | to_sync = deque() | 73 | to_sync = deque() |
74 | seen = set() | ||
74 | 75 | ||
75 | def __iter__(self): | 76 | def __iter__(self): |
76 | return self | 77 | return self |
77 | 78 | ||
78 | def __next__(self): | 79 | def __next__(self): |
79 | if self.to_sync: | 80 | if self.to_sync: |
80 | return self.to_sync.popleft() | 81 | next_repo = self.to_sync.popleft() |
82 | if next_repo['id'] in self.seen: | ||
83 | self.to_sync = deque() | ||
84 | self.seen = set() | ||
85 | next_repo = None | ||
86 | else: | ||
87 | self.seen.add(next_repo['id']) | ||
88 | |||
89 | if next_repo: | ||
90 | return next_repo | ||
81 | 91 | ||
82 | while True: | 92 | while True: |
83 | try: | 93 | try: |