| 5 | use crate::{DEFAULT_SESSION_DURATION_HOURS, config::ConfigContext}; |
| 6 | |
| 7 | pub(crate) fn parse() -> Cli { |
| 8 | let args = env::args_os().collect::<Vec<_>>(); |
| 9 | let arg_strings = args_to_strings(args.iter().skip(1).cloned()).unwrap_or_else(|message| { |
| 10 | eprintln!("{message}"); |
| 11 | eprintln!("Run 'ccusage --help' for usage."); |
| 12 | process::exit(2); |
| 13 | }); |
| 14 | let config = ConfigContext::from_args(&arg_strings); |
| 15 | Cli::parse_from_with_config( |
| 16 | args, |
| 17 | &config, |
| 18 | DEFAULT_SESSION_DURATION_HOURS, |
| 19 | env!("CARGO_PKG_VERSION"), |
| 20 | ) |
| 21 | .unwrap_or_else(|message| { |
| 22 | eprintln!("{message}"); |
| 23 | eprintln!("Run 'ccusage --help' for usage."); |
| 24 | process::exit(2); |
| 25 | }) |
| 26 | } |
| 27 | |
| 28 | fn args_to_strings<I>(args: I) -> Result<Vec<String>, String> |
| 29 | where |