chiark / gitweb /
otterlib: list all libs together
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 10 Jan 2021 18:07:44 +0000 (18:07 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 10 Jan 2021 23:19:44 +0000 (23:19 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otterlib.rs

index c2fc51ed1a770b7c6778e4974dd935236d5e156e..16e0011cc1f0f1b966db425faf40a488e725bc61 100644 (file)
@@ -40,13 +40,21 @@ fn main() {
 
   let libs = Config1::PathGlob(opts.libs.clone());
   load(&vec![libs.clone()])?;
-  let libnames = libs_list();
-  for lib in libnames {
-    let contents = libs_lookup(&lib)?;
-    let items = contents.list_glob(&opts.items)?;
-    for item in items {
-      println!("{}", item.line_for_list());
-    }
+  let items : Vec<ItemEnquiryData> =
+    libs_list()
+    .into_iter()
+    .map(|lib| {
+      let contents = libs_lookup(&lib)?;
+      let items = contents.list_glob(&opts.items)?;
+      Ok::<_,AE>(items)
+    })
+    .collect::<Result<Vec<_>,_>>()?
+    .into_iter()
+    .flatten()
+    .collect();
+
+  for item in &items {
+    println!("{}", item.line_for_list());
   }
 }