diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-11-05 11:36:34 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-11-05 11:37:34 +0100 |
commit | 6aeeb4b2b3d852ec7dd68ce2e899e00d53cde844 (patch) | |
tree | d6c3d047364ed743176ddef9f231ce12507eadbf /src/main.rs | |
parent | 779960f91950cbed916a2df3f6272fc5a00d2f69 (diff) |
build() does only support building one package
If we find multiple, we error out.
Building multiple packages with one call should not be supported.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/main.rs b/src/main.rs index 9bec9b1..395ad6f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -158,15 +158,15 @@ async fn build<'a>(matches: &ArgMatches, }; debug!("Found {} relevant packages", packages.len()); - let trees = tokio::stream::iter(packages.into_iter().cloned()) - .map(|p| { - let mut tree = Tree::new(); - tree.add_package(p, &repo, bar_tree_building.clone())?; - Ok(tree) - }) - .collect::<Result<Vec<_>>>() - .await?; + /// We only support building one package per call. + /// Everything else is invalid + if packages.len() > 1 { + return Err(anyhow!("Found multiple packages ({}). Cannot decide which one to build", packages.len())) + } + let package = *packages.get(0).ok_or_else(|| anyhow!("Found no package."))?; + let mut tree = Tree::new(); + tree.add_package(package.clone(), &repo, bar_tree_building.clone())?; bar_tree_building.finish_with_message("Finished loading Tree"); debug!("Trees loaded: {:?}", trees); |