summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs17
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.");
}