up2k non-e2d fixes:

* respect noforget when loading snaps
* ...but actually forget deleted files otherwise
* insert empty need/hash as necessary
This commit is contained in:
ed 2024-10-13 22:10:27 +00:00
parent 414de88925
commit 705f598b1a

View file

@ -1016,6 +1016,7 @@ class Up2k(object):
vpath = k
_, flags = self._expr_idx_filter(flags)
n4g = bool(flags.get("noforget"))
ft = "\033[0;32m{}{:.0}"
ff = "\033[0;35m{}{:.0}"
@ -1073,21 +1074,35 @@ class Up2k(object):
for job in reg2.values():
job["dwrk"] = job["wark"]
rm = []
for k, job in reg2.items():
job["ptop"] = ptop
if "done" in job:
job["need"] = job["hash"] = emptylist
else:
if "need" not in job:
job["need"] = []
if "hash" not in job:
job["hash"] = []
fp = djoin(ptop, job["prel"], job["name"])
if bos.path.exists(fp):
reg[k] = job
if "done" in job:
job["need"] = job["hash"] = emptylist
continue
job["poke"] = time.time()
job["busy"] = {}
else:
self.log("ign deleted file in snap: [{}]".format(fp))
if not n4g:
rm.append(k)
continue
for x in rm:
del reg2[x]
if drp is None:
drp = [k for k, v in reg.items() if not v.get("need", [])]
drp = [k for k, v in reg.items() if not v["need"]]
else:
drp = [x for x in drp if x in reg]