diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/build.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/build.py b/modules/build.py new file mode 100644 index 0000000..5787674 --- /dev/null +++ b/modules/build.py @@ -0,0 +1,38 @@ +from __future__ import with_statement + +from shutil import copyfileobj +from os.path import join +from os import listdir, getcwd + +from base.base import log +from base.module import Module +from base.util import pwd, copy +from base.exceptions import ExecutionException + +from modules.package import Package + +class Build(Module): + def __init__(self, name=None, target_dir=None): + log.debug('name is %s' % name) + self.name = name + self.pkg = Package(name) + self.target_dir = target_dir + + def setup_source(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') + log.debug('target dir is %s' % target_dir) + with pwd(self.pkg.code_dir): + copy(self.name + '.spec', + join(self.target_dir, 'SPECS', self.name + '.spec')) + sball = self.pkg.pkg_cfg['sourceball'] + copy(sball, join(self.target_dir, 'SOURCES', sball)) + patches = [f for f in listdir(getcwd()) if f.endswith('.patch')] + for p in patches: + copy(patch, join(self.target_dir, 'SOURCES', p)) + + def close(self): + pass
\ No newline at end of file |
