From 4eb4edc274ad812c0bbc52a538e5e65f04526326 Mon Sep 17 00:00:00 2001 From: Sérgio M. Basto Date: Feb 16 2018 04:45:06 +0000 Subject: Improve rpmdev-bumpspec -n NEW (#1545485) --- diff --git a/rpmdev-bumpspec b/rpmdev-bumpspec index 35e6c9c..4b0b55e 100755 --- a/rpmdev-bumpspec +++ b/rpmdev-bumpspec @@ -37,6 +37,7 @@ class SpecFile(object): def __init__(self, filename, verbose=False, string=None): self.verbose = verbose self.string = string + self.new_version = False self.filename = filename with open(filename) as f: @@ -123,10 +124,8 @@ class SpecFile(object): rpos = vr.find('-') if rpos >= 0: # set custom Release value - r = vr[rpos + 1:] v = vr[:rpos] else: - r = "1%{?dist}" v = vr changed = False @@ -136,12 +135,6 @@ class SpecFile(object): self.lines[i] = re.sub( r'[^: \t]*$', v, self.lines[i].rstrip()) + '\n' changed = changed or self.lines[i] != original - elif self.lines[i].lower().startswith('release:'): - # split and reconstruct to preserve whitespace - split = re.split(r':', self.lines[i].rstrip()) - self.lines[i] = split[0] + ':' + \ - re.sub(r'[^ \t]*$', r, split[1]) + '\n' - changed = changed or self.lines[i] != original return changed @@ -173,7 +166,11 @@ class SpecFile(object): relmatch = relre.search(release) if not relmatch: # pattern match failed raise BumpSpecError - value = str(int(relmatch.group('rel')) + 1) + if self.new_version: + value = "1" + pre = False + else: + value = str(int(relmatch.group('rel')) + 1) post = relmatch.group('post') new = value + post @@ -337,7 +334,9 @@ the Free Software Foundation; either version 2 of the License, or # Not actually a parser error, but... meh. parser.error(e) if opts.new: + s.new_version = True changed = s.newVersion(opts.new) + s.bumpRelease() else: s.bumpRelease() changed = True