summaryrefslogtreecommitdiffstats
path: root/base/rpm_utils.py
diff options
context:
space:
mode:
authorYaakov M. Nemoy <loupgaroublond@gmail.com>2008-12-29 23:11:55 -0500
committerYaakov M. Nemoy <loupgaroublond@gmail.com>2008-12-29 23:11:55 -0500
commit0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd (patch)
tree8c30624c6191a3d7a138b8229ef829a8406b9aa0 /base/rpm_utils.py
parent3d02771f3e2376cd459e9a4d0edf2ff0c0f22b2c (diff)
downloadfedora-devshell-0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd.tar.gz
fedora-devshell-0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd.tar.xz
fedora-devshell-0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd.zip
Mass commit, i should be cleaner in the future.
Diffstat (limited to 'base/rpm_utils.py')
-rw-r--r--base/rpm_utils.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/base/rpm_utils.py b/base/rpm_utils.py
new file mode 100644
index 0000000..bfdae46
--- /dev/null
+++ b/base/rpm_utils.py
@@ -0,0 +1,33 @@
+from __future__ import with_statement
+
+import re
+import rpm
+
+from contextlib import contextmanager
+from base import log
+
+class RPMSpec(object):
+ def __init__(self, spec_file):
+ self.contents = [x for x in file(spec_file)]
+
+ def version(self):
+ ver_line = [x for x in self.contents if x.startswith('Version:')][0]
+ ver_re = re.search(r'Version: (.*)', ver_line)
+ return ver_re.groups()[0]
+
+ def rel(self):
+ rel_line = [x for x in self.contents if x.startswith('Release:')][0]
+ rel_re = re.search(r'Release: (.*)', rel_line)
+ return rel_re.groups()[0]
+
+@contextmanager
+def rpm_macros(**keys):
+ for key, value in keys.iteritems():
+ log.debug('setting...')
+ log.debug(key + ' ' + value)
+ rpm.addMacro(key, value)
+ yield
+ for key, value in keys.iteritems():
+ rpm.delMacro(key)
+
+__all__ = ['rpm_macros', 'RPMSpec'] \ No newline at end of file