From 0cb6e545b308e79a5d4aa6c36b7366f2b0fc30fd Mon Sep 17 00:00:00 2001 From: "Yaakov M. Nemoy" Date: Mon, 29 Dec 2008 23:11:55 -0500 Subject: Mass commit, i should be cleaner in the future. --- modules/mock.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 modules/mock.py (limited to 'modules/mock.py') 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 -- cgit