diff --git a/packages/server/src/tag/pull.rs b/packages/server/src/tag/pull.rs index 3cfc0bfa6..6760ef542 100644 --- a/packages/server/src/tag/pull.rs +++ b/packages/server/src/tag/pull.rs @@ -19,16 +19,18 @@ impl Server { .data; list.into_iter() .filter_map(|output| { + // Skip objects that can't be packages. let directory = output.item.right()?.try_unwrap_directory().ok()?; let server = self.clone(); let remote = remote.clone().unwrap_or_else(|| "default".to_owned()); let future = async move { + // Pull the object let arg = tg::object::pull::Arg { remote }; let stream = server.pull_object(&directory.into(), arg).await?; + + // Drain the stream. let mut stream = std::pin::pin!(stream); - while let Some(_event) = stream.try_next().await? { - () - } + while let Some(_event) = stream.try_next().await? {} Ok::<_, tg::Error>(()) }; Some(future)