chiark / gitweb /
otterlib: Allow multiple libs separated with space or comma
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 19:37:45 +0000 (19:37 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 20:18:59 +0000 (20:18 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otterlib.rs

index 91e19e1b3a4135b0ae35c233e560141a830c2c6b..42d4c35d5f952902d818bfb29f457efe42e63ff2 100644 (file)
@@ -201,14 +201,23 @@ fn main() {
     .parse_env("OTTERLIB_LOG")
     .init();
 
-  let libs = Config1::PathGlob(opts.libs.clone());
-  load(&vec![libs.clone()])?;
+  const SPLIT: &[char] = &[',', ' '];
+
+  for libs in opts.libs.split(SPLIT) {
+    let tlibs = Config1::PathGlob(libs.to_owned());
+    load(&vec![tlibs.clone()])?;
+  }
   let mut items : Vec<ItemForOutput> =
     libs_list()
     .into_iter()
     .map(|lib| {
       let contents = libs_lookup(&lib)?;
-      let items = contents.list_glob(&opts.items)?;
+      let items = opts.items
+        .split(SPLIT)
+        .map(|items| contents.list_glob(items))
+        .collect::<Result<Vec<_>,_>>()?
+        .into_iter()
+        .flatten();
       Ok::<_,AE>((lib, items))
     })
     .collect::<Result<Vec<_>,_>>()?