diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-10-30 11:31:29 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-10-30 11:31:29 +0100 |
commit | 8938c38cb6849a40bce6b3105c7972ecad9b026d (patch) | |
tree | e18b1204f4429b68b96edf299e9318a10c3c1bc2 /src/package/package.rs | |
parent | df1ae0eec0742c3d5e882738f96c665882448437 (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.rs | 47 |
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() } } |