diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index bfba1a0dede24..0f85ba81d1268 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -127,13 +127,13 @@ def unpack(tarball, dst, verbose=False, match=None): shutil.move(tp, fp) shutil.rmtree(os.path.join(dst, fname)) -def run(args, verbose=False, exception=False, cwd=None): +def run(args, verbose=False, exception=False, cwd=None, env=None): if verbose: print("running: " + ' '.join(args)) sys.stdout.flush() # Use Popen here instead of call() as it apparently allows powershell on # Windows to not lock up waiting for input presumably. - ret = subprocess.Popen(args, cwd=cwd) + ret = subprocess.Popen(args, cwd=cwd, env=env) code = ret.wait() if code != 0: err = "failed to run: " + ' '.join(args) @@ -385,17 +385,15 @@ def build_bootstrap(self): raise Exception("no cargo executable found at `%s`" % self.cargo()) args = [self.cargo(), "build", "--manifest-path", os.path.join(self.rust_root, "src/bootstrap/Cargo.toml")] + if self.verbose: + args.append("--verbose") + if self.verbose > 1: + args.append("--verbose") if self.use_locked_deps: args.append("--locked") if self.use_vendored_sources: args.append("--frozen") - self.run(args, env) - - def run(self, args, env=None, cwd=None): - proc = subprocess.Popen(args, env=env, cwd=cwd) - ret = proc.wait() - if ret != 0: - sys.exit(ret) + run(args, env=env, verbose=self.verbose) def output(self, args, env=None, cwd=None): default_encoding = sys.getdefaultencoding() @@ -567,7 +565,7 @@ def update_submodules(self): path = line[1:].split(' ')[1] submodules.append([path, line[0]]) - self.run(["git", "submodule", "sync"], cwd=self.rust_root) + run(["git", "submodule", "sync"], cwd=self.rust_root) for submod in submodules: path, status = submod @@ -580,15 +578,15 @@ def update_submodules(self): submod_path = os.path.join(self.rust_root, path) if status == ' ': - self.run(["git", "reset", "--hard"], cwd=submod_path) - self.run(["git", "clean", "-fdx"], cwd=submod_path) + run(["git", "reset", "--hard"], cwd=submod_path) + run(["git", "clean", "-fdx"], cwd=submod_path) elif status == '+': - self.run(["git", "submodule", "update", path], cwd=self.rust_root) - self.run(["git", "reset", "--hard"], cwd=submod_path) - self.run(["git", "clean", "-fdx"], cwd=submod_path) + run(["git", "submodule", "update", path], cwd=self.rust_root) + run(["git", "reset", "--hard"], cwd=submod_path) + run(["git", "clean", "-fdx"], cwd=submod_path) elif status == '-': - self.run(["git", "submodule", "init", path], cwd=self.rust_root) - self.run(["git", "submodule", "update", path], cwd=self.rust_root) + run(["git", "submodule", "init", path], cwd=self.rust_root) + run(["git", "submodule", "update", path], cwd=self.rust_root) else: raise ValueError('unknown submodule status: ' + status) @@ -620,6 +618,11 @@ def bootstrap(): except: pass + if '\nverbose = 2' in rb.config_toml: + rb.verbose = 2 + elif '\nverbose = 1' in rb.config_toml: + rb.verbose = 1 + rb.use_vendored_sources = '\nvendor = true' in rb.config_toml or \ 'CFG_ENABLE_VENDOR' in rb.config_mk @@ -676,7 +679,7 @@ def bootstrap(): env["BUILD"] = rb.build env["SRC"] = rb.rust_root env["BOOTSTRAP_PARENT_ID"] = str(os.getpid()) - rb.run(args, env) + run(args, env=env, verbose=rb.verbose) def main(): start_time = time()