Get meta keys/values from env when using --save
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -350,11 +350,13 @@ fn mode_save(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &mut Vec<S
|
||||
|
||||
db::set_item_tags(&conn, item.clone(), tags)?;
|
||||
|
||||
let mut item_meta: HashMap<String, String> = HashMap::new();
|
||||
let mut item_meta: HashMap<String, String> = get_meta_from_env();
|
||||
|
||||
if let Ok(hostname) = gethostname().into_string() {
|
||||
if ! item_meta.contains_key("hostname") {
|
||||
item_meta.insert("hostname".to_string(), hostname);
|
||||
}
|
||||
}
|
||||
|
||||
for item in args.item.meta.iter() {
|
||||
let item = item.clone();
|
||||
@@ -457,7 +459,6 @@ fn mode_list(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &Vec<Strin
|
||||
meta.insert(item.key, item.value);
|
||||
}
|
||||
|
||||
|
||||
let items = match tags.is_empty() && meta.is_empty() {
|
||||
true => db::get_items(conn)?,
|
||||
false => db::get_items_matching(conn, tags, &meta)?
|
||||
@@ -467,7 +468,6 @@ fn mode_list(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &Vec<Strin
|
||||
|
||||
let mut tags_by_item: HashMap<i64, Vec<String>> = HashMap::new();
|
||||
let mut meta_by_item: HashMap<i64, HashMap<String, String>> = HashMap::new();
|
||||
let mut meta_columns = HashSet::new();
|
||||
|
||||
for item in items.iter() {
|
||||
let item_id = item.id.unwrap();
|
||||
@@ -803,3 +803,17 @@ fn mode_status(_cmd: &mut Command, args: Args, data_path: PathBuf, db_path: Path
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_meta_from_env() -> HashMap<String,String> {
|
||||
debug!("MAIN: Getting meta from KEEP_META_*");
|
||||
let re = Regex::new(r"^KEEP_META_(.+)$").unwrap();
|
||||
let mut meta_env: HashMap<String,String> = HashMap::new();
|
||||
for (key, value) in env::vars() {
|
||||
if let Some(meta_name_caps) = re.captures(key.as_str()) {
|
||||
let name = String::from(meta_name_caps.get(1).unwrap().as_str());
|
||||
debug!("MAIN: Found meta: {}={}", name.clone(), value.clone());
|
||||
meta_env.insert(name, value.clone());
|
||||
}
|
||||
}
|
||||
meta_env
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user