aboutsummaryrefslogtreecommitdiff
path: root/src/cliargs.rs
diff options
context:
space:
mode:
authorlukeflo2025-02-17 19:50:55 +0100
committerlukeflo2025-02-17 19:50:55 +0100
commit059591a1be6b887eaca9b114fdb5b350a65bae43 (patch)
tree40bbb1016606efa3111ea0dec051a2ef2c128ad4 /src/cliargs.rs
parentdd8dd9611771491e723a49b41cf27b1e9090664d (diff)
downloadbibiman-059591a1be6b887eaca9b114fdb5b350a65bae43.tar.gz
bibiman-059591a1be6b887eaca9b114fdb5b350a65bae43.zip
implement basic config struct and example file
Diffstat (limited to 'src/cliargs.rs')
-rw-r--r--src/cliargs.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cliargs.rs b/src/cliargs.rs
index 71ba38c..ecec93e 100644
--- a/src/cliargs.rs
+++ b/src/cliargs.rs
@@ -17,6 +17,7 @@
use color_eyre::eyre::Result;
use color_eyre::owo_colors::OwoColorize;
+use dirs::{config_dir, home_dir};
use lexopt::prelude::*;
use std::env;
use std::path::PathBuf;
@@ -31,6 +32,7 @@ pub struct CLIArgs {
pub versionarg: bool,
pub pos_args: Vec<PathBuf>,
pub files: Vec<PathBuf>,
+ pub cfg_path: PathBuf,
// INFO: AppColors struct later should be moved to config/app struct
// when config file is implemented
pub colors: AppColors,
@@ -41,10 +43,18 @@ impl CLIArgs {
let mut args = CLIArgs::default();
let mut parser = lexopt::Parser::from_env();
+ // Default config
+ args.cfg_path = if config_dir().is_some() {
+ config_dir().unwrap().join("bibiman/bibiman.toml")
+ } else {
+ home_dir().unwrap().join(".config/bibiman/bibiman.toml")
+ };
+
while let Some(arg) = parser.next()? {
match arg {
Short('h') | Long("help") => args.helparg = true,
Short('v') | Long("version") => args.versionarg = true,
+ Short('c') | Long("config-file") => args.cfg_path = parser.value()?.parse()?,
Long("light-terminal") => {
args.colors.light_colors();
args.colors.toggle_color_scheme()
@@ -114,6 +124,8 @@ POSITIONAL ARGS:
FLAGS:
-h, --help Show this help and exit
-v, --version Show the version and exit
+ -c, --config-file Path to config file used for current session.
+ Takes precedence over standard config file.
--light-terminal Enable color mode for light terminal background",
env!("CARGO_PKG_NAME"),
env!("CARGO_PKG_VERSION"),