Make history file location configurable (#2320)

* Make history location configurable

Add history-path to your config if you want an alternate history file
location

* use IndexMap.get() instead of index

Co-authored-by: Amanita Muscaria <nope>
This commit is contained in:
Corvus Corax 2020-08-10 20:58:53 -05:00 committed by GitHub
parent 901157341b
commit 9264325e57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -203,12 +203,28 @@ pub struct History;
impl History { impl History {
pub fn path() -> PathBuf { pub fn path() -> PathBuf {
const FNAME: &str = "history.txt"; const FNAME: &str = "history.txt";
config::user_data() let default = config::user_data()
.map(|mut p| { .map(|mut p| {
p.push(FNAME); p.push(FNAME);
p p
}) })
.unwrap_or_else(|_| PathBuf::from(FNAME)) .unwrap_or_else(|_| PathBuf::from(FNAME));
let cfg = crate::data::config::config(Tag::unknown());
if let Ok(c) = cfg {
match &c.get("history-path") {
Some(Value {
value: UntaggedValue::Primitive(p),
..
}) => match p {
Primitive::String(path) => PathBuf::from(path),
_ => default,
},
_ => default,
}
} else {
default
}
} }
} }