Clean up command-line arguments, usage text

This commit is contained in:
Kenny Levinsen
2025-02-27 16:38:52 +01:00
parent 83179d2c7e
commit a8cd777ca9
+26 -4
View File
@@ -38,6 +38,21 @@ use std::{
thread, thread,
}; };
fn print_usage() {
println!(
"
usage: wldash [OPTIONS]
OPTIONS:
--config CONFIG_FILE use the specified config file
(~/.config/wldash/config.yml by default)
--write-default-config [v1|v2|toplevel] generate and write a new config file
(v2 by default)
--desktop-refresh refresh desktop file cache
"
);
}
fn main() { fn main() {
let mut args = env::args(); let mut args = env::args();
// Skip program name // Skip program name
@@ -51,11 +66,11 @@ fn main() {
Some(ref s) => config_file = s.clone(), Some(ref s) => config_file = s.clone(),
None => panic!("missing argument to --config"), None => panic!("missing argument to --config"),
}, },
Some(ref s) if s == "generate" => { Some(ref s) if s == "--write-default-config" => {
let config = match args.next() { let config = match args.next() {
Some(ref s) if s == "v1" => Config::generate_v1(), Some(ref s) if s == "v1" => Config::generate_v1(),
Some(ref s) if s == "v2" => Config::generate_v2(false), Some(ref s) if s == "v2" => Config::generate_v2(false),
Some(ref s) if s == "clay" => Config::generate_v2(true), Some(ref s) if s == "toplevel" => Config::generate_v2(true),
None => Config::generate_v2(false), None => Config::generate_v2(false),
Some(s) => panic!("unknown argument: {}", s), Some(s) => panic!("unknown argument: {}", s),
}; };
@@ -65,12 +80,19 @@ fn main() {
} }
std::process::exit(0); std::process::exit(0);
} }
Some(ref s) if s == "desktop-refresh" => { Some(ref s) if s == "--desktop-refresh" => {
let v = load_desktop_files(); let v = load_desktop_files();
write_desktop_cache(&v).unwrap(); write_desktop_cache(&v).unwrap();
std::process::exit(0); std::process::exit(0);
} }
Some(_) => panic!("unknown argument"), Some(ref s) if s == "--help" => {
print_usage();
std::process::exit(0);
}
Some(_) => {
print_usage();
std::process::exit(1);
}
None => break, None => break,
} }
} }