mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 13:43:17 +00:00
Merge pull request #1029 from oli-obk/manifest2
fix cargo clippy when using with `--manifest-path`
This commit is contained in:
commit
78686c82cb
3 changed files with 11 additions and 5 deletions
|
@ -65,8 +65,13 @@ impl From<json::DecoderError> for Error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn metadata() -> Result<Metadata, Error> {
|
pub fn metadata(manifest_path: Option<String>) -> Result<Metadata, Error> {
|
||||||
let output = Command::new("cargo").args(&["metadata", "--no-deps"]).output()?;
|
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)?;
|
let stdout = from_utf8(&output.stdout)?;
|
||||||
Ok(json::decode(stdout)?)
|
Ok(json::decode(stdout)?)
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,8 @@ 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 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);
|
assert_eq!(metadata.version, 1);
|
||||||
for target in metadata.packages.remove(0).targets {
|
for target in metadata.packages.remove(0).targets {
|
||||||
let args = std::env::args().skip(2);
|
let args = std::env::args().skip(2);
|
||||||
|
|
|
@ -3,9 +3,9 @@ use clippy_lints::utils::cargo;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn check_that_clippy_lints_has_the_same_version_as_clippy() {
|
fn check_that_clippy_lints_has_the_same_version_as_clippy() {
|
||||||
let clippy_meta = cargo::metadata().expect("could not obtain cargo metadata");
|
let clippy_meta = cargo::metadata(None).expect("could not obtain cargo metadata");
|
||||||
std::env::set_current_dir(std::env::current_dir().unwrap().join("clippy_lints")).unwrap();
|
std::env::set_current_dir(std::env::current_dir().unwrap().join("clippy_lints")).unwrap();
|
||||||
let clippy_lints_meta = cargo::metadata().expect("could not obtain cargo metadata");
|
let clippy_lints_meta = cargo::metadata(None).expect("could not obtain cargo metadata");
|
||||||
assert_eq!(clippy_lints_meta.packages[0].version, clippy_meta.packages[0].version);
|
assert_eq!(clippy_lints_meta.packages[0].version, clippy_meta.packages[0].version);
|
||||||
for package in &clippy_meta.packages[0].dependencies {
|
for package in &clippy_meta.packages[0].dependencies {
|
||||||
if package.name == "clippy_lints" {
|
if package.name == "clippy_lints" {
|
||||||
|
|
Loading…
Reference in a new issue