def checkout(self, revision=None): if revision is None: revision = self.tag if revision is None: revision = self._branch command.run(["git", "checkout", revision])
def clean(self): try: os.chdir(self.local) except OSError: return False command.run(["git", "clean", "-fdx"]) return True
def run(cmd): args = [cmd, "--home-dir", config.home_dir] resolution = config.get_pref("RESOLUTION") if resolution: args.extend(["--resolution", resolution]) output = config.get_pref("OUTPUT") if output: args.extend(["--output", output]) command.run(args)
def update(self, revision=None): if not os.path.exists(os.path.join(self.local, ".git")): self._clone() return orig_cwd = os.getcwd() os.chdir(self.local) if revision is None: if self.tag and self._head_has_tag(self.tag): os.chdir(orig_cwd) return revision = self.tag if revision == self._get_commit_id(): os.chdir(orig_cwd) return command.run(["git", "remote", "set-url", "origin", self.remote]) command.run(["git", "fetch"], retry=self._retry) if revision: command.run(["git", "checkout", revision]) else: command.run(["git", "merge", "--ff-only", "origin/%s" % self._branch]) os.chdir(orig_cwd)
def run(cmd): args = [cmd, "--home-dir", config.home_dir] resolution = config.get_pref("RESOLUTION") if resolution: args.extend(["--resolution", resolution]) output = config.get_pref("OUTPUT") if output: args.extend(["--output", output]) signal.signal(signal.SIGINT, signal.SIG_IGN) os.environ["SUGAR_DEVELOPER"] = "1" print "Type Shift-Alt-Q inside sugar to close." command.run(args)
def _check_module(module): result = True if module.has_checks: print("* Checking %s" % module.name) os.chdir(module.get_build_dir()) xvfb_proc, orig_display = xvfb.start() try: command.run(["dbus-launch", "make", "check"]) except subprocess.CalledProcessError: result = False xvfb.stop(xvfb_proc, orig_display) return result
def _build_autotools(module, log): # Workaround for aclocal 1.11 (fixed in 1.12) aclocal_path = os.path.join(config.share_dir, "aclocal") utils.ensure_dir(aclocal_path) makefile_path = os.path.join(module.get_build_dir(), "Makefile") if not os.path.exists(makefile_path): configure = os.path.join(module.get_source_dir(), "autogen.sh") if not os.path.exists(configure): configure = os.path.join(module.get_source_dir(), "configure") args = [configure, "--prefix", config.install_dir] if not module.no_libdir: args.extend(["--libdir", config.lib_dir]) args.extend(module.options) for option in module.options_evaluated: args.append(_eval_option(option)) command.run(args, log) jobs = multiprocessing.cpu_count() * 2 command.run(["make", "-j", "%d" % jobs], log) command.run(["make", "install"], log) _unlink_libtool_files()
def _clone(self): os.chdir(self._path) command.run(["git", "clone", "--progress", self.remote, self._name], retry=self._retry) os.chdir(self.local) if self.tag: command.run(["git", "checkout", self.tag]) else: command.run(["git", "checkout", self._branch])
def _distribute_autotools(module): makefile = parse_makefile("Makefile") filename = makefile["DIST_ARCHIVES"] version = makefile["VERSION"] git_module = git.get_module(module) version_revision = None description = git_module.describe() if description != "v%s" % version: match = re.match(r"(v[\d\.]+)", description) if match is None: print("No version tag was found") return False else: version_revision = match.groups()[0] if version_revision is not None: git_module.checkout(version_revision) return command.run(["make", "distcheck"])
def _build_npm(module, log): command.run(["npm", "install", "-g", "--prefix", config.install_dir], log)
def _build_distutils(module, log): setup = os.path.join(module.get_source_dir(), "setup.py") command.run(["python", setup, "install", "--prefix", config.install_dir], log)
def _build_activity(module, log): setup = os.path.join(module.get_source_dir(), "setup.py") command.run([setup, "install", "--prefix", config.prefix_dir], log)