diff options
author | Yaakov M. Nemoy <loupgaroublond@gmail.com> | 2008-12-29 23:11:55 -0500 |
---|---|---|
committer | Yaakov M. Nemoy <loupgaroublond@gmail.com> | 2008-12-29 23:11:55 -0500 |
commit | 0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd (patch) | |
tree | 8c30624c6191a3d7a138b8229ef829a8406b9aa0 /base/rpm_utils.py | |
parent | 3d02771f3e2376cd459e9a4d0edf2ff0c0f22b2c (diff) | |
download | fedora-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.py | 33 |
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 |