| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
This patch adds the is_tty field to the Context struct that indicates
whether stdout is a TTY. This allows us to use TTY features like moving
the cursor in our output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.5. The following
notable changes have been made since 0.3.4:
- Added support for configuration files
- Added support for configuration files that can be used to set
default values for some arguments
- Added toml dependency in version 0.5.6
- Added serde dependency in version 1.0.114
- Added envy dependency in version 0.4.2
- Added merge dependency in version 0.1.0
- Added directories dependency in version 3.0.1
- Reworked connection handling for multiple attached Nitrokey devices:
- Fail if multiple attached devices match the filter options (or no filter
options are set)
- Added --serial-number option that restricts the serial number of the
device to connect to
- Added --usb-path option that restricts the USB path of the device to
connect to
- Bumped structopt dependency to 0.3.17
|
|
|
|
|
|
|
|
|
|
| |
This change updates the structopt crate to version 0.3.17. We need this
version as it fixes a compilation error [0] when using the
external_subcommand enum variant annotation provided by the crate. This
functionality will be used in a follow up change that enables usage of
user provided extensions.
[0]: https://github.com/TeXitoi/structopt/issues/424
|
|
|
|
|
|
|
|
| |
With this change we switch to using a REUSE compliant way of specifying
the copyright & license of the program. To be fully in conformance we
also add additional license specifications for the remaining files in
the project. Lastly, a new CI pipeline rule takes care of verifying
compliance on an ongoing basis.
|
|
|
|
|
| |
This change adjusts the copyright header in all files to no longer
mention individuals but refer to The Nitrocli Developers in general.
|
|
|
|
|
|
|
|
|
| |
This patch uses the directories crate to query the appropriate path for
the configuration files. For Linux, paths according to the XDG Base
Directory Specification are used.
Note that directories does not yet support the XDG_CONFIG_DIRS variable
for system-wide configuration files. Therefore we only use a user
configuration file.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.4. The following
notable changes have been made since 0.3.3:
- Changed default OTP format from hex to base32
- Improved error reporting format and fidelity
- Added anyhow dependency in version 1.0.32
- Updated minimum required Rust version to 1.42.0
- Bumped nitrokey dependency to 0.7.1
- Bumped proc-macro2 dependency to 1.0.19
- Bumped syn dependency to 1.0.36
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
This change updates the nitrokey dependency we consume to 0.7.1. With
this version the crate's Error type got reworked slightly, allowing it
to implement Sync and Send. It furthermore no longer duplicates
information available through the source() method in its Display
implementation. Both these changes will enable us to switch over to
using the anyhow crate for error handling in nitrocli in the future.
|
|
|
|
| |
This change updates the nitrokey-test development dependency to 0.4.0.
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.3. The following
notable changes have been made since 0.3.2:
- Added bash completion support via shell-complete utility program
- Updated minimum required Rust version to 1.40.0
- Converted Cargo.lock to new lock file format
- Bumped libc dependency to 0.2.69
- Bumped structopt dependency to 0.3.13
- Bumped various transitive dependencies to most recent versions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds support for generating a bash completion script. If
sourced, the shell will provide tab completions for the program's
arguments.
There are two possible approaches provided by clap for going about
generating shell completion functionality: either at build time, by
separately generating the clap parsers out-of-band, or at run time, as
an option to the main program itself. We are generally not too much in
favor of a run time approach, as it means less inspectability at
installation time and more overhead in the form of code crammed into the
main binary.
Hence, with this change we take the "build time" approach. Clap
recommends hooking the generation up in build.rs, but this seems like an
inflexible choice. For one, that is because it would mean
unconditionally generating this file or using some user-unfriendly
environment variable based approach for making the process conditional.
But there is also the fact that specifying the command for which to
generate the script should likely be configurable. That is a limitation
of the completion script that clap generates (see
https://github.com/clap-rs/clap/issues/1764).
In our version we provide a utility program that emits the completion
script to standard output, accepting regular command line options
itself. In doing so we allow for installation time generation of the
completion script or installation of the utility itself, the output of
which could be sourced on demand -- depending on the user's preference.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.2. The following
notable changes have been made since 0.3.1:
- Added the list command that lists all attached Nitrokey devices
- Reworked argument handling:
- Added structopt dependency in version 0.3.7
- Replaced argparse with structopt
- Removed argparse dependency
- Made the --verbose and --model options global
- Removed vendored dependencies and moved source code into repository
root
- Bumped nitrokey dependency to 0.6.0
- Bumped quote dependency to 1.0.3
- Bumped syn dependency to 1.0.14
|
|
|
|
|
|
| |
nitrokey 0.6.0 introduced the SerialNumber struct (instead of
representing serial numbers as strings). We no longer have to manually
format the serial number as SerialNumber implements Display.
|
|
|
|
|
|
| |
This change updates the version of the nitrokey crate that we use to
0.5.1. As part of that, it replaces occurrences of Storage::get_status
with Storage::get_storage_status as the method has been renamed.
|
|
|
|
|
|
| |
As we have replaced argparse with structopt, we no longer need it as a
dependency. This patch removes the dependency from Cargo.toml and
deletes the included copy.
|
|
|
|
|
| |
This patch series replaces argparse with structopt in the argument
handling code. As a first step, we need structopt as a dependency.
|
|
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.
|