aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
Commit message (Collapse)AuthorAge
* Use envy to parse environment variables for ConfigRobin Krahl2020-09-01
| | | | | | | | This patch uses the envy crate to parse the environment. A variable NITROCLI_KEY can be used to overwrite the configuration for *key*. This has the side effect that the NITROCLI_NO_CACHE variable is evaluated as a boolean variable (instead of only checking whether it is set). We also accept two new variables, NITROCLI_MODEL and NITROCLI_VERBOSITY.
* Implement configuration handlingRobin Krahl2020-09-01
| | | | | | | | | This patch implements basic configuration handling that reads a configuration file and stores the parsed data in the ExecCtx and RunCtx structs. It supports three configuration items: - model (previously only --model) - no_cache (previously only NITROCLI_NO_CACHE) - verbosity (previously only --verbose)
* Remove warning for missing_copy_implementations lintDaniel Mueller2020-09-01
| | | | | | | The missing_copy_implementations lint is arguably not super useful in an application crate, where no third party is consuming the type definitions. As such, this change removes it from the list of lints causing warnings.
* Remove application global Result definitionDaniel Mueller2020-08-31
| | | | | | | In the past we were using an application global custom Result type definition. This makes less sense now that we switched over to using anyhow's Error and Result types. We kept that for the time being, but with this change we remove the type and use anyhow::Result instead.
* Remove no longer used error moduleDaniel Mueller2020-08-31
| | | | | | This change removes the error module. This module, and the Error type it homes, are no longer used by the application, as everything has been transitioned over to using anyhow's Error type.
* Use anyhow for error handlingDaniel Mueller2020-08-28
| | | | | | | | | | | This patch changes our error handling approach from the ground up: instead of having a globally used Error enum that contains variants for all possible errors, we now use anyhow's Error type. This approach is more dynamic (and not statically typed), but it allows for more fine grained error messages and overall more user-friendly error reporting. Overall it also is a net simplification. While we have one dynamic cast now, in order to be able to handle erroneous password/PIN entries correctly, that is considered a reasonable compromise.
* Rename arg_defs.rs to args.rsDaniel Mueller2020-04-11
| | | | | | We have never been fully satisfied with the name arg_defs. Now that we have gotten rid of the formerly used args module, this change renames arg_defs to args.
* Merge remaining bits of args.rs into main.rsDaniel Mueller2020-04-11
| | | | | | This change removes the args module by moving all remaining functionality in it into main.rs. The result is arguably a nice consolidation of all context related definitions in a single module.
* Factor out arg_defs.rs for argument parsing related typesDaniel Mueller2020-04-01
| | | | | | | | This change marks the first step in a restructuring of the argument handling code, the ultimate goal of which is a separation of the type definitions as used by structopt from the logic associated with it. This change in particular introduces a new module, arg_defs, that contains all those type definitions that previously resided in the args module.
* Remove deprecated plugin_as_library lint usageDaniel Mueller2020-03-22
| | | | | | The plugin_as_library lint has been deprecated as of Rust 1.40.0. Hence, with this change we remove it from the list of lints we want to get warnings from.
* Remove unused code after structopt transitionRobin Krahl2020-01-07
| | | | | | In the previous patches, we replaced argparse with structopt and removed the argparse dependency. This patch removes the code that was only needed for argparse.
* Replace argparse with structoptRobin Krahl2020-01-07
| | | | | | | | | | | | This patch changes the argument handling code to use structopt instead of argparse using the data structures we introduced in the last patch. As part of that transition we replace the old Error::ArgparseError variant with ClapError that stores a structopt::clap::Error. Because of that replacement, the format of the help messages changed, breaking some of the tests. Hence, this change adapts them accordingly. Also clap currently prints the version output to stdout, so we ignore the version_option test case for now.
* Move nitrocli source code into repository rootDaniel Mueller2020-04-04
Now that all vendored dependencies have been removed, this change moves the program's source code from the nitrocli/ directory into the root of the repository.