derive_more = "0.99"
either = "1"
enum-map = { version = "0.6", features = [ "serde" ] }
+env_logger = "0.8"
failure = "0.1.8" # for pwd
fehler = "1"
flexi_logger = { version = "0.16", features = [ "specfile" ] }
pub use otter::imports::*;
+pub use shapelib::*;
+
use structopt::StructOpt;
#[derive(Debug,Clone)]
#[throws(anyhow::Error)]
fn main() {
let opts = Opts::from_args();
- let libs = shapelib::Config1::PathGlob(opts.libs.clone());
- shapelib::load(&vec![libs])?;
-/*
+
+ env_logger::Builder::new()
+// .format_timestamp_micros()
+// .format_level(true)
+// .filter_module(exe_module_path, log::LevelFilter::Debug)
+ .filter_level(log::LevelFilter::Info)
+ .parse_env("OTTERLIB_LOG")
+ .init();
+
+ 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)?;
+ dbg!(&items);
+ for item in items {
+ dbg!(&item);
+ }
+ }
+}
+
+/*
let name = a.next().unwrap();
let dirname = a.next().unwrap();
let catalogue = format!("{}.toml", &dirname);
};
shapelib::load1(&e).unwrap();
*/
-}
+
static SHAPELIBS: RwLock<Option<Registry>> = const_rwlock(None);
+pub fn libs_list() -> Vec<String> {
+ let libs = SHAPELIBS.read();
+ libs.as_ref().map(
+ |l| l.keys().cloned().collect()
+ ).unwrap_or_default()
+}
+
#[throws(SpecError)]
pub fn libs_lookup(libname: &str)
-> MappedRwLockReadGuard<'static, Contents> {