aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMichael Büsch <mb@bu3sch.de>2010-09-18 19:19:34 +0000
committerMichael Büsch <mb@bu3sch.de>2010-09-18 19:19:34 +0000
commit1460115836fe21d61c7357ff69498aae34bd0e9d (patch)
tree7dcb4ff21d3a460a06f27397a325a36db53ba7a1 /scripts
parenta2ca27e23784c66a050900f242c6dd2efc640a83 (diff)
downloadupstream-1460115836fe21d61c7357ff69498aae34bd0e9d.tar.gz
upstream-1460115836fe21d61c7357ff69498aae34bd0e9d.tar.bz2
upstream-1460115836fe21d61c7357ff69498aae34bd0e9d.zip
dl_cleanup: Add support for GIT-SHASUM
SVN-Revision: 23084
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/dl_cleanup.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/scripts/dl_cleanup.py b/scripts/dl_cleanup.py
index 67ccbda914..81c69f7aa5 100755
--- a/scripts/dl_cleanup.py
+++ b/scripts/dl_cleanup.py
@@ -15,7 +15,7 @@ import getopt
opt_dryrun = False
-def parseVer_1234(match):
+def parseVer_1234(match, filepath):
progname = match.group(1)
progversion = (int(match.group(2)) << 64) |\
(int(match.group(3)) << 48) |\
@@ -23,7 +23,7 @@ def parseVer_1234(match):
(int(match.group(5)) << 16)
return (progname, progversion)
-def parseVer_123(match):
+def parseVer_123(match, filepath):
progname = match.group(1)
try:
patchlevel = match.group(5)
@@ -39,7 +39,7 @@ def parseVer_123(match):
patchlevel
return (progname, progversion)
-def parseVer_12(match):
+def parseVer_12(match, filepath):
progname = match.group(1)
try:
patchlevel = match.group(4)
@@ -54,18 +54,24 @@ def parseVer_12(match):
patchlevel
return (progname, progversion)
-def parseVer_r(match):
+def parseVer_r(match, filepath):
progname = match.group(1)
progversion = (int(match.group(2)) << 64)
return (progname, progversion)
-def parseVer_ymd(match):
+def parseVer_ymd(match, filepath):
progname = match.group(1)
progversion = (int(match.group(2)) << 64) |\
(int(match.group(3)) << 48) |\
(int(match.group(4)) << 32)
return (progname, progversion)
+def parseVer_GIT(match, filepath):
+ progname = match.group(1)
+ st = os.stat(filepath)
+ progversion = int(st.st_mtime) << 64
+ return (progname, progversion)
+
extensions = (
".tar.gz",
".tar.bz2",
@@ -77,6 +83,7 @@ extensions = (
)
versionRegex = (
+ (re.compile(r"(.+)[-_]([0-9a-fA-F]{40,40})"), parseVer_GIT), # xxx-GIT_SHASUM
(re.compile(r"(.+)[-_](\d+)\.(\d+)\.(\d+)\.(\d+)"), parseVer_1234), # xxx-1.2.3.4
(re.compile(r"(.+)[-_](\d\d\d\d)-?(\d\d)-?(\d\d)"), parseVer_ymd), # xxx-YYYY-MM-DD
(re.compile(r"(.+)[-_](\d+)\.(\d+)\.(\d+)(\w?)"), parseVer_123), # xxx-1.2.3a
@@ -102,10 +109,12 @@ class Entry:
self.directory = directory
self.filename = filename
self.progname = ""
+ self.fileext = ""
for ext in extensions:
if filename.endswith(ext):
filename = filename[0:0-len(ext)]
+ self.fileext = ext
break
else:
print self.filename, "has an unknown file-extension"
@@ -113,7 +122,8 @@ class Entry:
for (regex, parseVersion) in versionRegex:
match = regex.match(filename)
if match:
- (self.progname, self.version) = parseVersion(match)
+ (self.progname, self.version) = parseVersion(
+ match, directory + "/" + filename + self.fileext)
break
else:
print self.filename, "has an unknown version pattern"
295' href='#n295'>295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339