diff --git a/crptls/src/core_functions.rs b/crptls/src/core_functions.rs index 9ab987b..11ebd89 100644 --- a/crptls/src/core_functions.rs +++ b/crptls/src/core_functions.rs @@ -60,7 +60,7 @@ pub fn import_and_process_final( &mut transactions_map, )?; - println!(" Successfully imported csv file."); + println!(" Successfully imported CSV Input File."); println!("Processing the data..."); transactions_map = create_lots_mvmts::create_lots_and_movements( diff --git a/crptls/src/csv_import_accts_txns.rs b/crptls/src/csv_import_accts_txns.rs index ed41713..7659b96 100644 --- a/crptls/src/csv_import_accts_txns.rs +++ b/crptls/src/csv_import_accts_txns.rs @@ -28,7 +28,7 @@ pub fn import_from_csv( let file = match File::open(import_file_path) { Ok(x) => { - println!("\nCSV ledger file opened successfully.\n"); + // println!("\nCSV ledger file opened successfully.\n"); x }, Err(e) => { @@ -90,7 +90,7 @@ ordered chronologically (i.e., beginning in column 4 - the 1st account column - The next column's value should be 2, then 3, etc, until the final account)."; // Header row variables have been set. It's now time to set up the accounts. - println!("Attempting to create accounts..."); + println!("\nCreating accounts..."); let length = &headerstrings.len(); @@ -153,7 +153,7 @@ fn import_transactions( let mut changed_action_records = 0; let mut changed_txn_num = Vec::new(); - println!("Attempting to create transactions..."); + println!("Creating transactions..."); for result in rdr.records() { diff --git a/examples/.env.example b/examples/.env.example index cded985..ab05c69 100644 --- a/examples/.env.example +++ b/examples/.env.example @@ -1,6 +1,6 @@ ## CONFIGURATION ## -## If the defaults below are not suitable, copy this .env.example into a new .env file, +## The defaults are shown below. If the defaults are not suitable, copy this .env.example into a new .env file, ## uncomment the respective enviroment variable, and set the value according to your needs. ## Alternatively, command line flags are available for ISO_DATE and DATE_SEPARATOR_SWITCH. ## Command line flags will override enviroment variables. @@ -26,6 +26,7 @@ # (Optional; default is not set) #LK_CUTOFF_DATE=YYYY-mm-DD +# These are the options available for choosing in which order lots are chosen for disposals. #1. LIFO according to the order the lot was created. #2. LIFO according to the basis date of the lot. #3. FIFO according to the order the lot was created. diff --git a/src/main.rs b/src/main.rs index 7b032a4..c8ba11a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -119,8 +119,7 @@ This software will import your csv file's ledger of cryptocurrency transactions. It will then process it by creating 'lots' and posting 'movements' to those lots. Along the way, it will keep track of income, expenses, gains, and losses. -See .env.example for environment variables that may be set in a .env file in order to -change default program behavior. +See examples/.env.example or run with --help to learn how to change default program behavior. Note: The software is designed to import a full history. Gains and losses may be incorrect otherwise. "); diff --git a/src/setup.rs b/src/setup.rs index b4be2b2..bb716a2 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -20,47 +20,49 @@ use crate::wizard; pub fn get_env(cmd_args: &super::Cli) -> Result> { match dotenv::dotenv() { - Ok(_path) => { println!("Setting environment variables from .env file.") }, + Ok(_path) => { println!("Exporting temporary environment variables from .env file.") }, Err(_e) => println!("Did not find .env file.") } + println!(" Setting runtime variables according to command line options or environment variables (the former take precedent)."); + let iso_date: bool = if cmd_args.iso_date { - println!(" Command line flag for ISO_DATE was set. Using YY-mm-dd or YY/mm/dd."); + println!(" Command line flag for ISO_DATE was set. Using YY-mm-dd or YY/mm/dd."); true } else { match env::var("ISO_DATE") { Ok(val) => { if val == "1" || val.to_lowercase() == "true" { - println!(" Found ISO_DATE env var: {}. Using YY-mm-dd or YY/mm/dd.", val); + println!(" Found ISO_DATE env var: {}. Using YY-mm-dd or YY/mm/dd.", val); true } else { - println!(" Found ISO_DATE env var: {} (not 1 or true). Using MM-dd-YY or MM/dd/YY.", val); + println!(" Found ISO_DATE env var: {} (not 1 or true). Using MM-dd-YY or MM/dd/YY.", val); false } }, Err(_e) => { - println!(" Using default dating convention (MM-dd-YY or MM/dd/YY)."); + println!(" Using default dating convention (MM-dd-YY or MM/dd/YY)."); false }, } }; let date_separator_is_slash: bool = if cmd_args.date_separator_is_slash { - println!(" Command line flag for DATE_SEPARATOR_IS_SLASH was set. Date separator set to slash (\"/\")."); + println!(" Command line flag for DATE_SEPARATOR_IS_SLASH was set. Date separator set to slash (\"/\")."); true } else { match env::var("DATE_SEPARATOR_IS_SLASH") { Ok(val) => { if val == "1" || val.to_ascii_lowercase() == "true" { - println!(" Found DATE_SEPARATOR_IS_SLASH env var: {}. Date separator set to slash (\"/\").", val); + println!(" Found DATE_SEPARATOR_IS_SLASH env var: {}. Date separator set to slash (\"/\").", val); true } else { - println!(" Found DATE_SEPARATOR_IS_SLASH env var: {} (not 1 or true). Date separator set to hyphen (\"-\").", val); + println!(" Found DATE_SEPARATOR_IS_SLASH env var: {} (not 1 or true). Date separator set to hyphen (\"-\").", val); false } } Err(_e) => { - println!(" Using default date separator, hyphen (\"-\")."); + println!(" Using default date separator, hyphen (\"-\")."); false }, } @@ -68,26 +70,26 @@ pub fn get_env(cmd_args: &super::Cli) -> Result> { let home_currency = match env::var("HOME_CURRENCY") { Ok(val) => { - println!(" Found HOME_CURRENCY env var: {}", val); + println!(" Found HOME_CURRENCY env var: {}", val); val.to_uppercase()}, Err(_e) => { - println!(" Using default home currency (USD)."); + println!(" Using default home currency (USD)."); "USD".to_string()}, }; let lk_cutoff_date = match env::var("LK_CUTOFF_DATE") { Ok(val) => { - println!(" Found LK_CUTOFF_DATE env var: {}", val); + println!(" Found LK_CUTOFF_DATE env var: {}", val); Some(val)}, Err(_e) => None, }; let inv_costing_method = match env::var("INV_COSTING_METHOD") { Ok(val) => { - println!(" Found INV_COSTING_METHOD env var: {}", val); + println!(" Found INV_COSTING_METHOD env var: {}", val); val}, Err(_e) => { - println!(" Using default inventory costing method (LIFO by lot creation date)."); + println!(" Using default inventory costing method (LIFO by lot creation date)."); "1".to_string()}, };