Skip to content

Commit

Permalink
Merge pull request #59 from dalance/master
Browse files Browse the repository at this point in the history
Fix workspace support
  • Loading branch information
dalance committed Aug 16, 2022
2 parents bd8da79 + d834316 commit 942bccf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ csv = "1"
serde = "1"
serde_derive = "1"
serde_json = "1"
cargo_metadata = "0.14.0"
cargo_metadata = "0.15.0"
semver = "1.0"
clap = { version = "3.1.17", features = ["derive"] }
atty = "0.2"
Expand Down
22 changes: 14 additions & 8 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use anyhow::{anyhow, Result};
use anyhow::Result;
use cargo_metadata::{
DepKindInfo, DependencyKind, Metadata, MetadataCommand, Node, NodeDep, Package, PackageId,
};
Expand All @@ -20,19 +20,25 @@ fn normalize(license_string: &str) -> String {
fn get_node_name_filter(metadata: &Metadata, opt: &GetDependenciesOpt) -> Result<HashSet<String>> {
let mut filter = HashSet::new();

let root = metadata
.root_package()
.ok_or_else(|| anyhow!("No root package"))?;
let roots = if let Some(root) = metadata.root_package() {
vec![root]
} else {
metadata.workspace_packages()
};

if opt.root_only {
filter.insert(root.name.clone());
for root in roots {
filter.insert(root.name.clone());
}
return Ok(filter);
}

if opt.direct_deps_only {
filter.insert(root.name.clone());
for package in root.dependencies.iter() {
filter.insert(package.name.clone());
for root in roots {
filter.insert(root.name.clone());
for package in root.dependencies.iter() {
filter.insert(package.name.clone());
}
}
}
Ok(filter)
Expand Down

0 comments on commit 942bccf

Please sign in to comment.