]> git.lizzy.rs Git - rust.git/commitdiff
Add a common Build::src_is_git flag
authorJosh Stone <jistone@redhat.com>
Mon, 3 Apr 2017 20:46:50 +0000 (13:46 -0700)
committerJosh Stone <jistone@redhat.com>
Mon, 3 Apr 2017 20:46:50 +0000 (13:46 -0700)
src/bootstrap/lib.rs
src/bootstrap/sanity.rs

index 84254d7d6ae515b2f49afaa647e58aec2bcb2b63..f80ba017f0774bc334987f5df220b27c6b3a1869 100644 (file)
@@ -162,6 +162,7 @@ pub struct Build {
     cxx: HashMap<String, gcc::Tool>,
     crates: HashMap<String, Crate>,
     is_sudo: bool,
+    src_is_git: bool,
 }
 
 #[derive(Debug)]
@@ -233,6 +234,7 @@ pub fn new(flags: Flags, config: Config) -> Build {
         };
         let rust_info = channel::GitInfo::new(&src);
         let cargo_info = channel::GitInfo::new(&src.join("cargo"));
+        let src_is_git = src.join(".git").is_dir();
 
         Build {
             flags: flags,
@@ -251,6 +253,7 @@ pub fn new(flags: Flags, config: Config) -> Build {
             lldb_version: None,
             lldb_python_dir: None,
             is_sudo: is_sudo,
+            src_is_git: src_is_git,
         }
     }
 
@@ -307,10 +310,7 @@ enum State {
             OutOfSync,
         }
 
-        if !self.config.submodules {
-            return
-        }
-        if fs::metadata(self.src.join(".git")).is_err() {
+        if !self.src_is_git || !self.config.submodules {
             return
         }
         let git = || {
index 235ce9360eff46a2004f6fcef30ebb7e64fe9a35..d1b235f4691dca7e476e4f862849b1f93bfe2c88 100644 (file)
@@ -65,7 +65,7 @@ pub fn check(build: &mut Build) {
 
     // If we've got a git directory we're gona need git to update
     // submodules and learn about various other aspects.
-    if fs::metadata(build.src.join(".git")).is_ok() {
+    if build.src_is_git {
         need_cmd("git".as_ref());
     }