diff options
author | Michael Pratt <mcpratt@pm.me> | 2022-09-19 16:39:34 -0400 |
---|---|---|
committer | Michael Pratt <mcpratt@pm.me> | 2022-09-22 16:48:36 -0400 |
commit | da4609788ddd559d4847662231cded2ecac16549 (patch) | |
tree | c737c3a8851e057b9673a441650c7b822a37b4d2 /scripts | |
parent | 59db286814be3ebc1fb9d9ec580945920c2d68e7 (diff) | |
download | upstream-da4609788ddd559d4847662231cded2ecac16549.tar.gz upstream-da4609788ddd559d4847662231cded2ecac16549.tar.bz2 upstream-da4609788ddd559d4847662231cded2ecac16549.zip |
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>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/dl_cleanup.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/scripts/dl_cleanup.py b/scripts/dl_cleanup.py index f7232b78c9..b15a9bb1a7 100755 --- a/scripts/dl_cleanup.py +++ b/scripts/dl_cleanup.py @@ -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: |