diff options
author | Olav Vitters <olav@vitters.nl> | 2014-07-06 13:15:59 +0200 |
---|---|---|
committer | Olav Vitters <olav@vitters.nl> | 2014-07-06 13:15:59 +0200 |
commit | 607619bcc79af585c0754aec49fcbb22ed121296 (patch) | |
tree | 73f3b89b5ba1ad061187b8e9c4dec81c7c8a22cc | |
parent | 4e44d91f49cfbcb5819f499119d6c6d6341b3d8a (diff) | |
download | mgagnome-607619bcc79af585c0754aec49fcbb22ed121296.tar mgagnome-607619bcc79af585c0754aec49fcbb22ed121296.tar.gz mgagnome-607619bcc79af585c0754aec49fcbb22ed121296.tar.bz2 mgagnome-607619bcc79af585c0754aec49fcbb22ed121296.tar.xz mgagnome-607619bcc79af585c0754aec49fcbb22ed121296.zip |
clean spec of 'define name/version/release SOMETHING'
-rwxr-xr-x | mgagnome | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -402,6 +402,30 @@ class SpecFile(object): made_changes = True self._changes.append('SILENT %s' % reason) + # Convert: + # %define name SOMETHING + # name: %{name} + # Into + # name: SOMETHING + converted_defines = [] + for search_for in ('name', 'version', 'release'): + re_spec = re.compile(r'^(?P<keeppre>' + re.escape(search_for) + r'[ \t]*:[ \t]*)\%\{' + re.escape(search_for) + r'\}(?P<keeppost>[ \t]*\n)', re.MULTILINE + re.IGNORECASE) + regexp = r'^(?P<keeppre>\%define[ \t]+'+ re.escape(search_for) + r'[ \t]+(?P<variable>\S+))(?P<keeppost>[ \t]*\n)' + re_variable = re.compile(r'^(?P<keeppre>\%define[ \t]+'+ re.escape(search_for) + r'[ \t]+(?P<definition>[^\n]+?))(?P<keeppost>[ \t]*\n)', re.MULTILINE + re.IGNORECASE) + + mo = re_variable.search(data) + if mo and mo.group('definition'): + mo2 = re_spec.search(data) + if mo2: + data, nr = re_spec.subn('\g<keeppre>' + mo.group('definition').replace('\\', '\\\\') + '\g<keeppost>', data) + if nr: + made_changes=True + data, nr = re_variable.subn('', data) + converted_defines.append(search_for) + + if converted_defines: + self._changes.append('SILENT remove variable definitions %s' % ", ".join(converted_defines)) + # Overwrite file with new version number if made_changes: write_file(self.path, data) |