]> git.lizzy.rs Git - rust.git/commitdiff
fix cargo clippy when using with `--manifest-path`
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Tue, 21 Jun 2016 10:31:30 +0000 (12:31 +0200)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Tue, 21 Jun 2016 10:31:30 +0000 (12:31 +0200)
clippy_lints/src/utils/cargo.rs
src/main.rs

index f81fcbc38ab15fb107af3ce52cb182f9abc5d3bf..48a97f2f1fc468b6a00fd999a2c50f52ebf7d3af 100644 (file)
@@ -65,8 +65,13 @@ fn from(err: json::DecoderError) -> Self {
     }
 }
 
-pub fn metadata() -> Result<Metadata, Error> {
-    let output = Command::new("cargo").args(&["metadata", "--no-deps"]).output()?;
+pub fn metadata(manifest_path: Option<String>) -> Result<Metadata, Error> {
+    let mut cmd = Command::new("cargo");
+    cmd.arg("metadata").arg("--no-deps");
+    if let Some(ref mani) = manifest_path {
+        cmd.arg(mani);
+    }
+    let output = cmd.output()?;
     let stdout = from_utf8(&output.stdout)?;
     Ok(json::decode(stdout)?)
 }
index de3361d514f9c68df370f901db84f76dcd0b2499..cf57926440bd887014a19f16159d90bcb54a5a0b 100644 (file)
@@ -129,7 +129,8 @@ pub fn main() {
     };
 
     if let Some("clippy") = std::env::args().nth(1).as_ref().map(AsRef::as_ref) {
-        let mut metadata = cargo::metadata().expect("could not obtain cargo metadata");
+        let manifest_path = std::env::args().skip(2).find(|val| val.starts_with("--manifest-path="));
+        let mut metadata = cargo::metadata(manifest_path).expect("could not obtain cargo metadata");
         assert_eq!(metadata.version, 1);
         for target in metadata.packages.remove(0).targets {
             let args = std::env::args().skip(2);