|
|
|
@ -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 |
|
|
|
|