refactor: move cli args to util module
Diff
src/main.rs | 24 +++---------------------
src/util.rs | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+), 21 deletions(-)
@@ -2,27 +2,9 @@ use std::env;
use gumdrop::Options;
use anyhow::Result;
mod util;
mod bwutil;
#[derive(Debug, Options)]
struct Cli {
#[options(help = "print help message and exit")]
help: bool,
#[options(help = "show debug output")]
debug: bool,
#[options(help = "folder name to use to search for SSH keys", default = "ssh-agent")]
folder: String,
#[options(help = "custom field name where the private key is stored", meta = "PRIVATE_KEY", default = "private-key")]
key: String,
#[options(help = "custom field name where the key passphrase is stored", meta = "PASS", default = "passphrase")]
passphrase: String,
#[options(help = "session to use to log in to bitwarden-cli")]
session: String,
#[options(help = "print version and exit")]
version: bool,
}
const SESSION_ENV_KEY: &str = "BW_SESSION";
@@ -31,7 +13,7 @@ const BW_FIELD_KEY_FILENAME: &str = "private";
const BW_FIELD_KEY_PASSPHRASE: &str = "passphrase";
fn main() -> Result<()> {
let args: Cli = Cli::parse_args_default_or_exit();
let args: util::Cli = util::Cli::parse_args_default_or_exit();
if args.version {
let name = env!("CARGO_PKG_NAME");
let version = env!("CARGO_PKG_VERSION");
@@ -85,7 +67,7 @@ fn main() -> Result<()> {
fn check_session_token(args: &Cli) -> Result<String> {
fn check_session_token(args: &util::Cli) -> Result<String> {
println!("Getting Bitwarden session...");
let mut session_token: String = String::new();
@@ -0,0 +1,20 @@
use gumdrop::Options;
#[derive(Debug, Options)]
pub struct Cli {
#[options(help = "print help message and exit")]
pub help: bool,
#[options(help = "show debug output")]
pub debug: bool,
#[options(help = "folder name to use to search for SSH keys", default = "ssh-agent")]
pub folder: String,
#[options(help = "custom field name where the private key is stored", meta = "PRIVATE_KEY", default = "private-key")]
pub key: String,
#[options(help = "custom field name where the key passphrase is stored", meta = "PASS", default = "passphrase")]
pub passphrase: String,
#[options(help = "session to use to log in to bitwarden-cli")]
pub session: String,
#[options(help = "print version and exit")]
pub version: bool,
}