mirror of
https://github.com/openSUSE/osc.git
synced 2024-12-26 01:46:13 +01:00
Merge pull request #622 from jberry-suse/parseRevisionOption-clean
osc/core: parseRevisionOption(): cleanup and make logic consistent.
This commit is contained in:
commit
5d6cfe80d5
@ -7048,7 +7048,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
project = args[0]
|
||||
package = args[1]
|
||||
|
||||
rev, rev_upper = parseRevisionOption(opts.revision)
|
||||
rev, rev_upper = parseRevisionOption(opts.revision, allow_md5=False)
|
||||
if rev and not checkRevision(project, package, rev, apiurl, opts.meta):
|
||||
print('Revision \'%s\' does not exist' % rev, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
28
osc/core.py
28
osc/core.py
@ -6699,32 +6699,22 @@ def cmdbuild(apiurl, cmd, project, package=None, arch=None, repo=None, code=None
|
||||
return root.get('code')
|
||||
|
||||
|
||||
def parseRevisionOption(string):
|
||||
def parseRevisionOption(string, allow_md5=True):
|
||||
"""
|
||||
returns a tuple which contains the revisions
|
||||
"""
|
||||
|
||||
revisions = [None, None]
|
||||
if string:
|
||||
if ':' in string:
|
||||
splitted_rev = string.split(':')
|
||||
try:
|
||||
for i in splitted_rev:
|
||||
int(i)
|
||||
return splitted_rev
|
||||
except ValueError:
|
||||
parts = string.split(':')
|
||||
for i, revision in enumerate(parts[0:2], 0):
|
||||
if revision.isdigit() or (allow_md5 and revision.isalnum() and len(revision) == 32):
|
||||
revisions[i] = revision
|
||||
elif revision != '' and revision != 'latest':
|
||||
print('your revision \'%s\' will be ignored' % string, file=sys.stderr)
|
||||
return None, None
|
||||
else:
|
||||
if string.isdigit():
|
||||
return string, None
|
||||
elif string.isalnum() and len(string) == 32:
|
||||
# could be an md5sum
|
||||
return string, None
|
||||
else:
|
||||
print('your revision \'%s\' will be ignored' % string, file=sys.stderr)
|
||||
return None, None
|
||||
else:
|
||||
return None, None
|
||||
|
||||
return tuple(revisions)
|
||||
|
||||
def checkRevision(prj, pac, revision, apiurl=None, meta=False):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user