def run_sdist(context): sdist_name = "sdist" sdist_klass = COMMANDS_REGISTRY.get_command(sdist_name) cmd_argv = [] sdist_context_klass = CONTEXT_REGISTRY.get(sdist_name) sdist, sdist_context = run_cmd_in_context(sdist_klass, sdist_name, cmd_argv, sdist_context_klass, context.run_node, context.top_node, context.pkg) return sdist
def get_usage(): ret = [USAGE % {"name": "bentomaker", "version": bento.__version__}] ret.append("Bento commands:") commands = [] cmd_names = sorted(COMMANDS_REGISTRY.get_public_command_names()) for name in cmd_names: v = COMMANDS_REGISTRY.get_command(name) doc = v.short_descr if doc is None: doc = "undocumented" header = " %s" % name commands.append((header, doc)) minlen = max([len(header) for header, hlp in commands]) + 2 for header, hlp in commands: ret.append(fill_string(header, minlen) + hlp) return "\n".join(ret)
def run(self, ctx): pprint('BLUE', "Distcheck...") pprint('PINK', "\t-> Running sdist...") sdist = run_sdist(ctx) tarname = sdist.tarname tardir = sdist.topdir saved = os.getcwd() distcheck_dir = ctx.build_node.make_node(DISTCHECK_DIR) if os.path.exists(distcheck_dir.abspath()): shutil.rmtree(distcheck_dir.abspath()) distcheck_dir.mkdir() target = distcheck_dir.make_node(os.path.basename(tarname)) rename(tarname, target.abspath()) tarname = os.path.basename(target.abspath()) os.chdir(distcheck_dir.abspath()) try: pprint('PINK', "\t-> Extracting sdist...") tarball = TarFile.gzopen(tarname) tarball.extractall() os.chdir(tardir) def _call(cmd): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() stdout = stdout.strip() stderr = stderr.strip() if stdout: print stdout.decode() if stderr: print stderr.decode() if p.returncode != 0: raise CalledProcessError(p.returncode, cmd) if sys.version_info[0] < 3: bentomaker_script = _BENTOMAKER_SCRIPT else: bentomaker_script = [sys.executable, "-m", "bentomakerlib.bentomaker"] pprint('PINK', "\t-> Configuring from sdist...") _call(bentomaker_script + ["configure", "--prefix=%s" % os.path.abspath("tmp")]) pprint('PINK', "\t-> Building from sdist...") _call(bentomaker_script + ["build", "-i"]) pprint('PINK', "\t-> Building egg from sdist...") _call(bentomaker_script + ["build_egg"]) if sys.platform == "win32": pprint('PINK', "\t-> Building wininst from sdist...") _call(bentomaker_script + ["build_wininst"]) if "test" in COMMANDS_REGISTRY.get_command_names(): pprint('PINK', "\t-> Testing from sdist...") try: _call(bentomaker_script + ["test"]) except CalledProcessError, e: raise CommandExecutionFailure( "test command failed") else: