diff options
| author | Mark Simulacrum <mark.simulacrum@gmail.com> | 2018-02-10 18:15:34 -0700 |
|---|---|---|
| committer | Mark Simulacrum <mark.simulacrum@gmail.com> | 2018-02-10 18:15:34 -0700 |
| commit | 11580b7be3a830ccea569b64545ec77008c452ac (patch) | |
| tree | d13b4230efb0b7da1a5bd26f6c6f49cc8bc5bcef /src/bootstrap | |
| parent | 8c506f9dae5664fb04bf070f1422df5308d90cb6 (diff) | |
| download | rust-11580b7be3a830ccea569b64545ec77008c452ac.tar.gz rust-11580b7be3a830ccea569b64545ec77008c452ac.zip | |
Make exclude and paths relative to root of checkout
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/flags.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index 465ebf846d3..8a38fedc613 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -275,7 +275,12 @@ Arguments: }; // Get any optional paths which occur after the subcommand let cwd = t!(env::current_dir()); - let paths = matches.free[1..].iter().map(|p| cwd.join(p)).collect::<Vec<_>>(); + let src = matches.opt_str("src").map(PathBuf::from) + .or_else(|| env::var_os("SRC").map(PathBuf::from)) + .unwrap_or(cwd.clone()); + let paths = matches.free[1..].iter().map(|p| { + cwd.join(p).strip_prefix(&src).expect("paths passed to be inside checkout").into() + }).collect::<Vec<PathBuf>>(); let cfg_file = matches.opt_str("config").map(PathBuf::from).or_else(|| { if fs::metadata("config.toml").is_ok() { @@ -360,10 +365,6 @@ Arguments: stage = Some(1); } - let src = matches.opt_str("src").map(PathBuf::from) - .or_else(|| env::var_os("SRC").map(PathBuf::from)) - .unwrap_or(cwd.clone()); - Flags { verbose: matches.opt_count("verbose"), stage, @@ -375,12 +376,14 @@ Arguments: target: split(matches.opt_strs("target")) .into_iter().map(|x| INTERNER.intern_string(x)).collect::<Vec<_>>(), config: cfg_file, - src, jobs: matches.opt_str("jobs").map(|j| j.parse().unwrap()), cmd, incremental: matches.opt_present("incremental"), exclude: split(matches.opt_strs("exclude")) - .into_iter().map(|p| cwd.join(p)).collect::<Vec<_>>(), + .into_iter().map(|p| { + cwd.join(p).strip_prefix(&src).expect("paths to be inside checkout").into() + }).collect::<Vec<_>>(), + src, } } } |
