mirror of
https://github.com/deps-rs/deps.rs.git
synced 2024-11-22 18:36:30 +00:00
filter out glob members from workspace
This commit is contained in:
parent
4158889161
commit
b0c77b4446
2 changed files with 26 additions and 7 deletions
|
@ -42,13 +42,17 @@ impl ManifestCrawler {
|
||||||
},
|
},
|
||||||
CrateManifest::Workspace { members } => {
|
CrateManifest::Workspace { members } => {
|
||||||
for mut member in members {
|
for mut member in members {
|
||||||
output.paths_of_interest.push(path.clone().join(member));
|
if !member.ends_with("*") {
|
||||||
|
output.paths_of_interest.push(path.clone().join(member));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CrateManifest::Mixed { name, deps, members } => {
|
CrateManifest::Mixed { name, deps, members } => {
|
||||||
self.leaf_crates.insert(name, deps);
|
self.leaf_crates.insert(name, deps);
|
||||||
for mut member in members {
|
for mut member in members {
|
||||||
output.paths_of_interest.push(path.clone().join(member));
|
if !member.ends_with("*") {
|
||||||
|
output.paths_of_interest.push(path.clone().join(member));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,6 +138,21 @@ members = [
|
||||||
assert_eq!(step_output.paths_of_interest[2].to_str().unwrap(), "/contrib/");
|
assert_eq!(step_output.paths_of_interest[2].to_str().unwrap(), "/contrib/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn glob_workspace_manifest() {
|
||||||
|
let manifest = r#"
|
||||||
|
[workspace]
|
||||||
|
members = [
|
||||||
|
"lib/",
|
||||||
|
"tests/*",
|
||||||
|
]
|
||||||
|
"#;
|
||||||
|
let mut crawler = ManifestCrawler::new();
|
||||||
|
let step_output = crawler.step("/".into(), manifest.to_string()).unwrap();
|
||||||
|
assert_eq!(step_output.paths_of_interest.len(), 1);
|
||||||
|
assert_eq!(step_output.paths_of_interest[0].to_str().unwrap(), "/lib/");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn mixed_package_and_workspace_manifest() {
|
fn mixed_package_and_workspace_manifest() {
|
||||||
let futures_manifest = r#"
|
let futures_manifest = r#"
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::path::Path;
|
||||||
|
|
||||||
use failure::Error;
|
use failure::Error;
|
||||||
use futures::{Future, IntoFuture, Stream, future};
|
use futures::{Future, IntoFuture, Stream, future};
|
||||||
use hyper::{Error as HyperError, Method, Request, Response};
|
use hyper::{Error as HyperError, Method, Request, Response, Uri};
|
||||||
use hyper::header::UserAgent;
|
use hyper::header::UserAgent;
|
||||||
use tokio_service::Service;
|
use tokio_service::Service;
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
@ -22,15 +22,15 @@ pub fn retrieve_file_at_path<S, P: AsRef<Path>>(service: S, repo_path: &RepoPath
|
||||||
repo_path.qual.as_ref(),
|
repo_path.qual.as_ref(),
|
||||||
repo_path.name.as_ref(),
|
repo_path.name.as_ref(),
|
||||||
path_str
|
path_str
|
||||||
).parse().into_future().from_err();
|
).parse::<Uri>().into_future().from_err();
|
||||||
|
|
||||||
uri_future.and_then(move |uri| {
|
uri_future.and_then(move |uri| {
|
||||||
let request = Request::new(Method::Get, uri);
|
let request = Request::new(Method::Get, uri.clone());
|
||||||
|
|
||||||
service.call(request).from_err().and_then(|response| {
|
service.call(request).from_err().and_then(move |response| {
|
||||||
let status = response.status();
|
let status = response.status();
|
||||||
if !status.is_success() {
|
if !status.is_success() {
|
||||||
future::Either::A(future::err(format_err!("Status code: {}", status)))
|
future::Either::A(future::err(format_err!("Status code {} for URI {}", status, uri)))
|
||||||
} else {
|
} else {
|
||||||
let body_future = response.body().concat2().from_err();
|
let body_future = response.body().concat2().from_err();
|
||||||
let decode_future = body_future
|
let decode_future = body_future
|
||||||
|
|
Loading…
Reference in a new issue