# HG changeset patch # User Bjoern Ricks # Date 1274362656 0 # Node ID 72b39fcb6a249438d97c270a8a827a1019a5a10c # Parent 399008ca131ec1643e90474ed39f3c25a6598f2c sbdmock is now able to run scripts diff -r 399008ca131e -r 72b39fcb6a24 treepkg/sbuilder.py --- a/treepkg/sbuilder.py Wed May 19 10:04:02 2010 +0000 +++ b/treepkg/sbuilder.py Thu May 20 13:37:36 2010 +0000 @@ -159,7 +159,33 @@ modifications are available in subsequent uses of the builder instance. """ - logging.error("It isn't possible to run scripts withon sbdmock.") + + if not script[0]: + raise RuntimeError("No script to execute was passed") + + args = [] + if logfile is not None: + logdir = os.path.dirname(logfile) + args.extend(["--rootlog=%s" % logfile]) + args.extend(["--logdir=%s" % logdir]) + if bindmounts: + self.mount(bindmounts) + + self.mount([self.extra_pkg_dir]) + + cmd = cmdexpand("/usr/bin/sbdmock exec $script --cleanbuilddir" + " --config=$builderconfig" +# " --dbo=" # aren't build options setable in treepkg.cfg? + " -u @args", + builderconfig=self.builderconfig, + script=script[0], + args=args) + logging.debug("sbdmock cmd: %s" % cmd) + + try: + run.call(cmd, suppress_output=False) + finally: + self.umount_all() def login(self, bindmounts=(), save_after_login=False): """Start an interactive shell in the builder environment"""