예제 #1
0
파일: installer.py 프로젝트: OnGle/fab
    def __init__(self, chroot_path, environ={}):
        env = {
            'DEBIAN_FRONTEND': 'noninteractive',
            'DEBIAN_PRIORITY': 'critical'
        }
        env.update(environ)

        self.chroot = Chroot(chroot_path, environ=env)
예제 #2
0
    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
예제 #3
0
    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)