From 358e54b897645a83cdf1614113cb7da43c0f39a4 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 23 Jan 2022 15:44:48 +0530 Subject: [PATCH] main: support various version CLI flags --- src/main.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main.rs b/src/main.rs index ce8ec21..9a65734 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,10 +16,32 @@ fn main() -> Result<()> { let config_path = get_config_path()?; let config_str = std::fs::read_to_string(config_path.as_path()).unwrap_or_default(); let config: Replacements<'_> = toml::from_str(&config_str)?; + if check_args() { + return Ok(()); + } loop_clipboard(config); return Ok(()); } +fn check_args() -> bool { + let args: Vec = std::env::args().collect(); + let version_args = vec!["version", "-v", "--version"]; + for arg in args { + if version_args.contains(&arg.deref()) { + print_version(); + return true; + } + } + return false; +} + +fn print_version() { + println!( + "{}", + concat!(env!("CARGO_PKG_NAME"), " ", env!("CARGO_PKG_VERSION")) + ); +} + fn get_config_path() -> Result { let mut config_path = config_dir().ok_or_else(|| anyhow!("Failed to get config dir"))?; config_path.push("substitutor");