diff options
Diffstat (limited to 'modules/mock.py')
| -rw-r--r-- | modules/mock.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/modules/mock.py b/modules/mock.py new file mode 100644 index 0000000..3655c37 --- /dev/null +++ b/modules/mock.py @@ -0,0 +1,46 @@ +from __future__ import with_statement + +from base.module import Module +from base.vars import FEDORA_DIR +from base.profiles import ver_rel, Profile +from modules.build import Build +from modules.package import Package + +class Mock(Module): + def __init__(self, target_dir, name, profile): + self.target_dir = target_dir + self.name = name + self.pkg = Package(name) + self.build = Build(name, target_dir) + # for now we're using the old profile form, namely a branch + # TODO: fix real profiles + self.profile = Profile(profile) + + def build_rpm(self, target_dir=None): + if not target_dir: + if self.target_dir: + target_dir = self.target_dir + else: + raise ExecutionException(None, 'no Target Dir specified') + + self.build.build_source_rpm(target_dir, self.profile) + self.build.fetch_rpms(target_dir) + + srpm_name = self.pkg.get_srpm_name(self.profile) + mock_cfg = self.profile.mock_cfg + result_dir = self.profile.result_dir + config_dir = self.profile.config_dir + with pwd(self.pkg.code_dir): + with file('mock.log', 'w') as mock_out: + with pwd(FEDORA_DIR): + p = Popen(['/usr/bin/mock', + '-r %s' % mock_cfg, + '--configdir=%s' % config_dir, + '--resultdir=%s' % result_dir, + srpm_name], + stdout=mock_out, stderr=mock_out) + log.info('quick compiling %s... please wait' % srpm_name) + p.wait() + + +__all__ = ['Mock']
\ No newline at end of file |
