From c01c810c105d9bf612939fd5d93b7c737b3f5f71 Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Thu, 28 Sep 2023 23:40:20 +0200 Subject: [PATCH] Configurable config file --- src/main.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 9fc4fed..2270edf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -35,8 +35,16 @@ fn main() { // Skip program name _ = args.next(); + let mut config_file = format!("{}/wldash/config.yml", xdg::config_folder()); + loop { match args.next() { + Some(ref s) if s == "--config" => { + match args.next() { + Some(ref s) => config_file = s.clone(), + None => panic!("missing argument to --config"), + } + } Some(ref s) if s == "generate" => { let config = match args.next() { Some(ref s) if s == "v1" => Config::generate_v1(), @@ -45,7 +53,7 @@ fn main() { None => Config::generate_v2(false), Some(s) => panic!("unknown argument: {}", s), }; - match File::create(format!("{}/wldash/config.yml", xdg::config_folder())) { + match File::create(config_file) { Ok(f) => serde_yaml::to_writer(f, &config).unwrap(), Err(_) => panic!("uh"), } @@ -131,7 +139,7 @@ fn main() { let mut fm = FontMap::new(); - let config: Config = match File::open(format!("{}/wldash/config.yml", xdg::config_folder())) { + let config: Config = match File::open(config_file) { Ok(f) => serde_yaml::from_reader(f).unwrap(), Err(_) => panic!("configuration file missing"), };