Merge pull request #948 from BenoitZugmeyer/cargo-clippy-exit-code

Let cargo-clippy exit with a code > 0 if some error occured
This commit is contained in:
Manish Goregaokar 2016-05-24 08:55:41 +05:30
commit 84098f56b6

View file

@ -122,18 +122,28 @@ pub fn main() {
if let Some("clippy") = std::env::args().nth(1).as_ref().map(AsRef::as_ref) { if let Some("clippy") = std::env::args().nth(1).as_ref().map(AsRef::as_ref) {
let args = wrap_args(std::env::args().skip(2), dep_path, sys_root); let args = wrap_args(std::env::args().skip(2), dep_path, sys_root);
let path = std::env::current_exe().expect("current executable path invalid"); let path = std::env::current_exe().expect("current executable path invalid");
std::process::Command::new("cargo") let exit_status = std::process::Command::new("cargo")
.args(&args) .args(&args)
.env("RUSTC", path) .env("RUSTC", path)
.spawn().expect("could not run cargo") .spawn().expect("could not run cargo")
.wait().expect("failed to wait for cargo?"); .wait().expect("failed to wait for cargo?");
if let Some(code) = exit_status.code() {
std::process::exit(code);
}
} else { } else {
let args: Vec<String> = if env::args().any(|s| s == "--sysroot") { let args: Vec<String> = if env::args().any(|s| s == "--sysroot") {
env::args().collect() env::args().collect()
} else { } else {
env::args().chain(Some("--sysroot".to_owned())).chain(Some(sys_root)).collect() env::args().chain(Some("--sysroot".to_owned())).chain(Some(sys_root)).collect()
}; };
rustc_driver::run_compiler(&args, &mut ClippyCompilerCalls::new()); let (result, _) = rustc_driver::run_compiler(&args, &mut ClippyCompilerCalls::new());
if let Err(err_count) = result {
if err_count > 0 {
std::process::exit(1);
}
}
} }
} }