dl_cleanup: Add support for GIT-SHASUM
SVN-Revision: 23084
This commit is contained in:
parent
a2ca27e237
commit
1460115836
1 changed files with 16 additions and 6 deletions
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue