@@ -11,24 +11,39 @@ def get_tmbackup_snapshots(root, prefix):
1111 regex = re .compile (r"(?P<snapshot_date>.+)" )
1212
1313 if not (root / "backup.marker" ).exists ():
14- raise FileNotFoundError (f"The backup.marker file must exist inside the provided rsync-time-backup root directory: { root } " )
14+ raise FileNotFoundError (
15+ f"The backup.marker file must exist inside the provided rsync-time-backup root directory: { root } "
16+ )
17+
1518 for path in discover (str (root ), 1 ):
1619 parsed = parser (path , regex )
1720 if parsed is not None and parsed ["snapshot_date" ] not in ("latest" ,):
1821 abs_path = root / path
22+
23+ snapshot_date = parsed ["snapshot_date" ]
24+ if prefix and snapshot_date .startswith (prefix ):
25+ snapshot_date = snapshot_date [len (prefix ):]
26+
1927 meta = dict (
2028 name = make_name ("" .join ([prefix , parsed ["snapshot_date" ]])),
2129 path = abs_path ,
22- timestamp = datetime_from_string (path ),
30+ timestamp = datetime_from_string (snapshot_date ),
2331 )
2432 yield meta
25- elif parsed ["snapshot_date" ] in ("latest" ,):
33+
34+ elif parsed is not None and parsed ["snapshot_date" ] in ("latest" ,):
2635 # "latest" is a symlink to the most recent backup. Import it anyway
2736 # in case the user wants to do borg mount or has existing references
2837 # to "latest".
2938 abs_path = root / path
30- timestamp = Path ("latest" ).resolve ().name
39+ timestamp = (root / "latest" ).resolve ().name
40+
41+ if prefix and timestamp .startswith (prefix ):
42+ timestamp = timestamp [len (prefix ):]
43+
3144 meta = dict (
32- name = make_name ("" .join ([prefix , "latest" ])), path = abs_path , timestamp = datetime_from_string (timestamp )
45+ name = make_name ("" .join ([prefix , "latest" ])),
46+ path = abs_path ,
47+ timestamp = datetime_from_string (timestamp ),
3348 )
34- yield meta
49+ yield meta
0 commit comments