diff options
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/channel.rs | 15 | ||||
| -rw-r--r-- | src/bootstrap/lib.rs | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/bootstrap/channel.rs b/src/bootstrap/channel.rs index c126c076a3d..2607ce412f1 100644 --- a/src/bootstrap/channel.rs +++ b/src/bootstrap/channel.rs @@ -42,9 +42,22 @@ struct Info { impl GitInfo { pub fn new(dir: &Path) -> GitInfo { - if !dir.join(".git").is_dir() { + // See if this even begins to look like a git dir + if !dir.join(".git").exists() { return GitInfo { inner: None } } + + // Make sure git commands work + let out = Command::new("git") + .arg("rev-parse") + .current_dir(dir) + .output() + .expect("failed to spawn git"); + if !out.status.success() { + return GitInfo { inner: None } + } + + // Ok, let's scrape some info let ver_date = output(Command::new("git").current_dir(dir) .arg("log").arg("-1") .arg("--date=short") diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 618e4d67705..72aec15e532 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -232,7 +232,7 @@ impl Build { None => false, }; let rust_info = channel::GitInfo::new(&src); - let cargo_info = channel::GitInfo::new(&src.join("src/tools/cargo")); + let cargo_info = channel::GitInfo::new(&src.join("cargo")); Build { flags: flags, |
