From 428fde15d641985c9e7052e9bf1044d1db92fc9c Mon Sep 17 00:00:00 2001 From: Ralf Zerres Date: Wed, 1 Jul 2020 05:34:32 +0200 Subject: [PATCH] parse_args: make vektor 'viperus' explicit * when using as a globel, this is more easy to recognize Signed-off-by: Ralf Zerres --- advotracker/src/bin/csv-test/parse_args.rs | 10 +-- advotracker/src/parse_args.rs | 82 +++++++++++----------- 2 files changed, 44 insertions(+), 48 deletions(-) diff --git a/advotracker/src/bin/csv-test/parse_args.rs b/advotracker/src/bin/csv-test/parse_args.rs index a2a0668..b79ca30 100644 --- a/advotracker/src/bin/csv-test/parse_args.rs +++ b/advotracker/src/bin/csv-test/parse_args.rs @@ -1,6 +1,6 @@ /* * advotracker - Hotline tackingtool for Advocats - * + * Copyright 2020 Ralf Zerres * SPDX-License-Identifier: (0BSD or MIT) */ @@ -146,12 +146,8 @@ SMR Unerledigt: 089 92529 60222") ); // enable caching and automatic update of environment values - if cfg!(feature = "fmt-cache") { - v.cache(true); - } - if cfg!(feature = "fmt-env") { - v.automatic_env(true); - } + v.cache(true); + v.automatic_env(true); // load user selected call arguments // -> overwrites values given via environment variables diff --git a/advotracker/src/parse_args.rs b/advotracker/src/parse_args.rs index b3cde8a..70f906b 100644 --- a/advotracker/src/parse_args.rs +++ b/advotracker/src/parse_args.rs @@ -15,23 +15,27 @@ use viperus::Viperus; /// Parse the commandline arguments and preset default values /// Precedence: defaults -> config-file -> environment -> commandline -pub fn parse_args(v: &mut Viperus) -> Result<(), Box> { +pub fn parse_args(viperus: &mut Viperus) -> Result<(), Box> { + if cfg!(feature = "global") { + trace!(target: "Viperus", "Viperus feature 'global' enabled."); + println!("Lasy static: 'VIPERUS' is accessible globaly"); + } + if cfg!(feature = "fmt-clap") { trace!(target: "Viperus", "Viperus feature 'fmt-clap' enabled."); println!("Using feature fmt-clap"); } // preset default key/value pairs (lowest priority) - v.add_default("config_file", String::from("csv_import.ron")); - v.add_default("import_file", String::from("POLLFNR_WOECHENTLICH.txt")); - v.add_default("export_file", String::from("")); - v.add_default("test_policy_number", 123456789); - v.add_default("to_email_address_file", String::from("Allianz RA-Hotline ")); - v.add_default("from_email_address_file", String::from("Allianz-Hotline RA-Hiedemann ")); - //v.add_default("username", String::from("nctalkbot")); - //v.add_default("password", String::from("botpassword")); - v.add_default("verbose", 0); - + viperus.add_default("config_file", String::from("csv_import.ron")); + viperus.add_default("import_file", String::from("POLLFNR_WOECHENTLICH.txt")); + viperus.add_default("export_file", String::from("")); + viperus.add_default("test_policy_number", 123456789); + viperus.add_default("to_email_address_file", String::from("Allianz RA-Hotline ")); + viperus.add_default("from_email_address_file", String::from("Allianz-Hotline RA-Hiedemann ")); + //viperus.add_default("username", String::from("nctalkbot")); + //viperus.add_default("password", String::from("botpassword")); + viperus.add_default("verbose", 0); // CLI arguments are defined inline let matches = App::new("advotracker") @@ -130,13 +134,13 @@ SMR Unerledigt: 089 92529 60222") if matches.occurrences_of("verbose") > 0 { // clap is using i64, viperus i32 let n = matches.occurrences_of("verbose") as i32; - v.add("verbose", n); + viperus.add("verbose", n); } // preset the prefix for relevant environment variables ("ADVOTRACKER_") let mut env_prefix: String = crate_name!().to_uppercase(); env_prefix.push_str("_"); - v.set_env_prefix(&env_prefix); + viperus.set_env_prefix(&env_prefix); // respect dotenv environment (e.g for testing) // -> overwrites the preset default values @@ -146,70 +150,66 @@ SMR Unerledigt: 089 92529 60222") ); // enable caching and automatic update of environment values - if cfg!(feature = "fmt-cache") { - v.cache(true); - } - if cfg!(feature = "fmt-env") { - v.automatic_env(true); - } + viperus.cache(true); + viperus.automatic_env(true); // load user selected call arguments // -> overwrites values given via environment variables - v.load_clap(matches)?; + viperus.load_clap(matches)?; // bond the clap names to camel_case rust variable names - v.bond_clap("configFile", "config_file"); - v.bond_clap("importFile", "import_file"); - v.bond_clap("exportFile", "export_file"); - v.bond_clap("toEmailAddress", "to_email_address"); - v.bond_clap("fromEmailAddress", "from_email_address"); - v.bond_clap("testPolicyNumber", "test_policy_number"); - //v.bond_clap("username", "username"); - //v.bond_clap("password", "password"); - v.bond_clap("verbose", "verbose"); + viperus.bond_clap("configFile", "config_file"); + viperus.bond_clap("importFile", "import_file"); + viperus.bond_clap("exportFile", "export_file"); + viperus.bond_clap("toEmailAddress", "to_email_address"); + viperus.bond_clap("fromEmailAddress", "from_email_address"); + viperus.bond_clap("testPolicyNumber", "test_policy_number"); + //viperus.bond_clap("username", "username"); + //viperus.bond_clap("password", "password"); + viperus.bond_clap("verbose", "verbose"); - trace!("verbose {:?}", v.get::("verbose").unwrap()); - if v.get::("verbose").unwrap() > 0 { + trace!("verbose {:?}", viperus.get::("verbose").unwrap()); + if viperus.get::("verbose").unwrap() > 0 { println!( "config_file: {:?}", - v.get::("config_file").unwrap_or_default() + viperus.get::("config_file").unwrap_or_default() ); println!( "import_file: {:?}", - v.get::("import_file").unwrap_or_default() + viperus.get::("import_file").unwrap_or_default() ); println!( "export_file: {:?}", - v.get::("export_file").unwrap_or_default() + viperus.get::("export_file").unwrap_or_default() ); println!( "to_email_address: {:?}", - v.get::("to_email_address").unwrap_or_default() + viperus.get::("to_email_address").unwrap_or_default() ); println!( "from_email_address: {:?}", - v.get::("from_email_address").unwrap_or_default() + viperus.get::("from_email_address").unwrap_or_default() ); println!( "test_policy_number: {:?}", - v.get::("test_policy_number").unwrap_or_default() + viperus.get::("test_policy_number").unwrap_or_default() ); // println!( // "username: {:?}", - // v.get::("username").unwrap_or_default() + // viperus.get::("username").unwrap_or_default() // ); // println!( // "password: {:?}", - // v.get::("password").unwrap_or_default() + // viperus.get::("password").unwrap_or_default() // ); // only for testing now println!( "verbosity level: {:?}", - v.get::("verbose").unwrap_or_default() + viperus.get::("verbose").unwrap_or_default() ); } - if v.get::("verbose").unwrap() > 1 { + if viperus.get::("verbose").unwrap() > 1 { println!("\nEnvironment:"); for (key, value) in env::vars() { println!("{}={}", key, value);