scripts/dl_cleanup: add support for subdirectories

Allow comparing subdirectories exactly like files.

Handle a corner case where the new subdirectory
has the same tarball inside of it
as the one that was downloaded
before a subdirectory for that package was established.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
This commit is contained in:
Michael Pratt 2022-09-19 16:39:34 -04:00
parent 59db286814
commit da4609788d
1 changed files with 18 additions and 9 deletions

View File

@ -149,15 +149,18 @@ class Entry:
self.fileext = ""
self.filenoext = ""
for ext in extensions:
if filename.endswith(ext):
filename = filename[0 : 0 - len(ext)]
self.filenoext = filename
self.fileext = ext
break
if os.path.isdir(self.getPath()):
self.filenoext = filename
else:
print(self.filename, "has an unknown file-extension")
raise EntryParseError("ext")
for ext in extensions:
if filename.endswith(ext):
filename = filename[0 : 0 - len(ext)]
self.filenoext = filename
self.fileext = ext
break
else:
print(self.filename, "has an unknown file-extension")
raise EntryParseError("ext")
for (regex, parseVersion) in versionRegex:
match = regex.match(filename)
if match:
@ -184,7 +187,10 @@ class Entry:
path = self.getPath()
print("Deleting", path)
if not opt_dryrun:
os.unlink(path)
if os.path.isdir(path):
shutil.rmtree(path)
else:
os.unlink(path)
def deleteBuildDir(self):
paths = self.getBuildPaths()
@ -301,6 +307,9 @@ def main(argv):
lastVersion = None
versions = progmap[prog]
for version in versions:
if lastVersion:
if os.path.isdir(lastVersion.getPath()) and not os.path.isdir(version.getPath()):
continue
if lastVersion is None or version >= lastVersion:
lastVersion = version
if lastVersion: