diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 705b33b..b445285 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,24 @@ +mod config; + use clap::Parser; +use crate::config::Config; + #[derive(Parser, Debug)] #[command(version, about, long_about = None)] struct Args { + /// Path to the config file. If blank, searches default config locations. + #[arg(short = 'c', long = "config", default_value = "")] + config_file: String, } fn main() { - let _args = Args::parse(); - println!("Hello, world!"); + let args = Args::parse(); + let _config = match args.config_file.as_str() { + "" => Config::find_config().unwrap_or_else(|| + panic!("Failed to find config. Paths searched: {:#?}", config::DEFAULT_CONFIG_FILE_LOCATIONS)), + path => Config::parse_config_file_at_path(&path).unwrap_or_else(|err| + panic!("Failed to parse config at {}. Error: {}", path, err)), + }; + println!("Found config file."); } |
