diff options
Diffstat (limited to 'modules/mock.py')
-rw-r--r-- | modules/mock.py | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/modules/mock.py b/modules/mock.py index a49231f..aaa0108 100644 --- a/modules/mock.py +++ b/modules/mock.py @@ -17,47 +17,47 @@ # from __future__ import with_statement +from subprocess import Popen + +from base.base import log from base.module import Module -from base.vars import FEDORA_DIR -from base.profiles import ver_rel, Profile +from base.profiles import ver_rel +from base.util import pwd + from modules.build import Build +from modules.dirfactory import DirFactory from modules.package import Package +from modules.profile import Profile 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 + def __init__(self, profile, build): + self.build = Build(build) 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) + def build_rpm(self, package): + pkg = DirFactory(package) + + self.build.build_source_rpm(package, self.profile) + self.build.fetch_rpms(self.profile.result_dir) + + srpm_name = 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): + config_dir = self.profile.mock_cfg_dir + cmd = ['mock', '-r %s' % mock_cfg, + '--configdir=%s' % config_dir, + '--resultdir=%s' % result_dir, + srpm_name] + log.debug('cmd is ' + str(cmd)) + with pwd(pkg.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) + with pwd(result_dir): + p = Popen(cmd, stdout=mock_out, stderr=mock_out) + log.info('mock compiling %s... please wait' % srpm_name) p.wait() + def close(self): + self.build.close() + self.profile.close() __all__ = ['Mock'] |