[openwrt/openwrt] scripts/dl_cleanup: add support for subdirectories

LEDE Commits lede-commits at lists.infradead.org
Thu Sep 22 13:50:46 PDT 2022


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/da4609788ddd559d4847662231cded2ecac16549

commit da4609788ddd559d4847662231cded2ecac16549
Author: Michael Pratt <mcpratt at pm.me>
AuthorDate: Mon Sep 19 16:39:34 2022 -0400

    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 at pm.me>
---
 scripts/dl_cleanup.py | 27 ++++++++++++++++++---------
 1 file 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:




More information about the lede-commits mailing list