def __init__(self, chroot_path, environ={}): env = { 'DEBIAN_FRONTEND': 'noninteractive', 'DEBIAN_PRIORITY': 'critical' } env.update(environ) self.chroot = Chroot(chroot_path, environ=env)
def run_command(self, platform, *argv): cmd = self._wrap_cmd(self._get_command(platform, *argv)) with Chroot(self.env_config.get_chroot(platform)): self._rename_log() try: print("[%s] " % platform + " ".join(cmd)) with open(os.devnull, 'wb') as null: check_call(" ".join(cmd), stdout=null, shell=True, executable='/bin/bash') except CalledProcessError: failed_projs = self.__get_failed_projects() if not failed_projs: raise self.__failed_exception__( "%s failed. \n Error log: %s" % (" ".join(cmd), self.get_platform_log(platform))) return failed_projs
def _code_sign(self, platform): spks = self.package.spk_config.chroot_spks( self.env_config.get_chroot(platform)) if not spks: raise SignPackageError('[%s] No spk found' % platform) for spk in spks: cmd = ' php ' + PkgScripts + '/CodeSign.php --sign=/image/packages/' + os.path.basename( spk) with Chroot(self.env_config.get_chroot(platform)): if not self.check_gpg_key_exist(): raise SignPackageError( "[%s] Gpg key not exist. You can add `-S' to skip package code sign or import gpg key first." % platform) print("[%s] Sign package: " % platform + cmd) try: check_call(cmd, shell=True, executable="/bin/bash") except CalledProcessError: raise SignPackageError('Failed to create signature: ' + spk)