about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/build/mod.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/bootstrap/build/mod.rs b/src/bootstrap/build/mod.rs
index 6f962aae923..55741921d75 100644
--- a/src/bootstrap/build/mod.rs
+++ b/src/bootstrap/build/mod.rs
@@ -155,24 +155,25 @@ impl Build {
         if fs::metadata(self.src.join(".git")).is_err() {
             return
         }
-        let out = output(Command::new("git").arg("submodule").arg("status"));
+        let git_submodule = || {
+            let mut cmd = Command::new("git");
+            cmd.current_dir(&self.src).arg("submodule");
+            return cmd
+        };
+        let out = output(git_submodule().arg("status"));
         if !out.lines().any(|l| l.starts_with("+") || l.starts_with("-")) {
             return
         }
 
-        self.run(Command::new("git").arg("submodule").arg("sync"));
-        self.run(Command::new("git").arg("submodule").arg("init"));
-        self.run(Command::new("git").arg("submodule").arg("update"));
-        self.run(Command::new("git").arg("submodule").arg("update")
-                                    .arg("--recursive"));
-        self.run(Command::new("git").arg("submodule").arg("status")
-                                    .arg("--recursive"));
-        self.run(Command::new("git").arg("submodule").arg("foreach")
-                                    .arg("--recursive")
-                                    .arg("git").arg("clean").arg("-fdx"));
-        self.run(Command::new("git").arg("submodule").arg("foreach")
-                                    .arg("--recursive")
-                                    .arg("git").arg("checkout").arg("."));
+        self.run(git_submodule().arg("sync"));
+        self.run(git_submodule().arg("init"));
+        self.run(git_submodule().arg("update"));
+        self.run(git_submodule().arg("update").arg("--recursive"));
+        self.run(git_submodule().arg("status").arg("--recursive"));
+        self.run(git_submodule().arg("foreach").arg("--recursive")
+                                .arg("git").arg("clean").arg("-fdx"));
+        self.run(git_submodule().arg("foreach").arg("--recursive")
+                                .arg("git").arg("checkout").arg("."));
     }
 
     /// Clear out `dir` if our build has been flagged as dirty, and also set