From: Michael Pratt Date: Mon, 19 Sep 2022 20:39:34 +0000 (-0400) Subject: scripts/dl_cleanup: add support for subdirectories X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fjow.git;a=commitdiff_plain;h=da4609788ddd559d4847662231cded2ecac16549 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 --- 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: