aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/dl_cleanup.py32
1 files changed, 26 insertions, 6 deletions
diff --git a/scripts/dl_cleanup.py b/scripts/dl_cleanup.py
index e83c82ac2c..41f172de56 100755
--- a/scripts/dl_cleanup.py
+++ b/scripts/dl_cleanup.py
@@ -9,9 +9,13 @@
import sys
import os
import re
+import getopt
DEBUG = 0
+# Commandline options
+opt_dryrun = False
+
def parseVer_1234(match):
progname = match.group(1)
@@ -114,7 +118,7 @@ class Entry:
def deleteFile(self):
path = (self.directory + "/" + self.filename).replace("//", "/")
print "Deleting", path
- if not DEBUG:
+ if not opt_dryrun:
os.unlink(path)
def __eq__(self, y):
@@ -125,13 +129,29 @@ class Entry:
def usage():
print "OpenWRT download directory cleanup utility"
- print "Usage: " + sys.argv[0] + " path/to/dl"
+ print "Usage: " + sys.argv[0] + " [OPTIONS] <path/to/dl>"
+ print ""
+ print " -d|--dry-run Do a dry-run. Don't delete any files"
def main(argv):
- if len(argv) != 2:
+ global opt_dryrun
+
+ try:
+ (opts, args) = getopt.getopt(argv[1:],
+ "hd",
+ [ "help", "dry-run", ])
+ if len(args) != 1:
+ raise getopt.GetoptError()
+ except getopt.GetoptError:
usage()
return 1
- directory = argv[1]
+ directory = args[0]
+ for (o, v) in opts:
+ if o in ("-h", "--help"):
+ usage()
+ return 0
+ if o in ("-d", "--dry-run"):
+ opt_dryrun = True
# Create a directory listing and parse the file names.
entries = []
@@ -140,7 +160,7 @@ def main(argv):
continue
for black in blacklist:
if black.match(filename):
- if DEBUG:
+ if opt_dryrun:
print filename, "is blacklisted"
break
else:
@@ -167,7 +187,7 @@ def main(argv):
for version in versions:
if version != lastVersion:
version.deleteFile()
- if DEBUG:
+ if opt_dryrun:
print "Keeping", lastVersion.filename
return 0