summaryrefslogtreecommitdiffstats
path: root/src/package/package.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-10-30 11:31:29 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-10-30 11:31:29 +0100
commit8938c38cb6849a40bce6b3105c7972ecad9b026d (patch)
treee18b1204f4429b68b96edf299e9318a10c3c1bc2 /src/package/package.rs
parentdf1ae0eec0742c3d5e882738f96c665882448437 (diff)
Change Package::get_all_dependencies() to actually get all dependencies
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/package/package.rs')
-rw-r--r--src/package/package.rs47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/package/package.rs b/src/package/package.rs
index 97663f2..4a0961c 100644
--- a/src/package/package.rs
+++ b/src/package/package.rs
@@ -79,24 +79,35 @@ impl Package {
/// Either return the list of dependencies or, if available, run the dependencies_script to
/// read the dependencies from there.
pub fn get_all_dependencies(&self, executor: &dyn Executor) -> Result<Vec<(PackageName, PackageVersionConstraint)>> {
- use std::convert::TryInto;
-
- self.dependencies()
- .dependencies_script()
- .as_ref()
- .map(|path| executor.execute_dependency_script(path))
- .transpose()?
- .unwrap_or_default()
- .into_iter()
- .map(Ok)
- .chain({
- self.dependencies()
- .runtime()
- .iter()
- .cloned()
- .map(|d| d.try_into().map_err(Error::from))
- })
- .and_then_ok(|d| d.try_into().map_err(Error::from))
+ use crate::package::ParseDependency;
+
+ let system_iter = self.dependencies()
+ .system()
+ .iter()
+ .cloned()
+ .map(|d| d.parse_into_name_and_version());
+
+ let system_runtime_iter = self.dependencies()
+ .system_runtime()
+ .iter()
+ .cloned()
+ .map(|d| d.parse_into_name_and_version());
+
+ let build_iter = self.dependencies()
+ .build()
+ .iter()
+ .cloned()
+ .map(|d| d.parse_into_name_and_version());
+
+ let runtime_iter = self.dependencies()
+ .runtime()
+ .iter()
+ .cloned()
+ .map(|d| d.parse_into_name_and_version());
+
+ system_iter.chain(system_runtime_iter)
+ .chain(build_iter)
+ .chain(runtime_iter)
.collect()
}
}