mirror of
https://gitlab.com/keys.openpgp.org/hagrid.git
synced 2025-10-06 00:23:08 +02:00
Migrate "hagrid-tester" to Clap v4 derive based API. Clean up code along the way.
Changes: - Add "derive" feature for "clap" in tester/Cargo.toml. - Move about description from tester/src/cli.rs to "description" field in tester/Cargo.toml. So, "clap" can access it via #[command(about)] macro configuration. - Update Cargo.lock. - Replace in tester/src/cli.rs usage of clap::App from Clap 2.34.0 with clap::Parser derive macro based API, cli::Cli struct and cli::Command enum. - Remove "--config/-c <FILE>" option for "tester" as it wasn't used and I believe it was a copy-paste from "hagridctl". - Omit explicit specification of args name which resulted in upper casing cmd option's parameters, e.g. "<cert count>" -> "<CERT_COUNT>". - Replace in cli::dispatch_cmd() "if let" based logic with simple match on cli::Command enum variants. - Get rid of manual parsing of options' and commands' values in cli::dispatch_cmd(). As it is hadled by derived value_parser (https://docs.rs/clap/latest/clap/_derive/index.html#arg-attributes) based on field types. - Make "fprs_path" parameter of tester::generate::do_generate function obligatory (previously it was Option<&Path>) as this argument has a default value to "fingerprints.txt" which is populated by clap. So, it never be None. In addition, clean up logic related to optional "fprs_path" parameter in tester::generate::do_generate function. - Change signatures of the following functions to accept "impl AsRef<Path>" instead of &Path or Option<&Path>: - tester::generate::do_generate() - tester::genreqs::do_genreqs() That allows us to pass as function arguments anything from which Path can be borrowed, e.g. PathBuf without the need to explicitly transform the value at call site with calls like .as_path() or .as_deref(). - Replace in tester/src/main.rs cli::app().get_matches() (which is Clap v2 API) with cli::Cli::parse() (Clap v4 API).
This commit is contained in:
35
Cargo.lock
generated
35
Cargo.lock
generated
@@ -430,7 +430,7 @@ dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"strsim 0.8.0",
|
||||
"textwrap",
|
||||
"unicode-width",
|
||||
"unicode-width 0.1.14",
|
||||
"vec_map",
|
||||
]
|
||||
|
||||
@@ -441,6 +441,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -453,6 +454,20 @@ dependencies = [
|
||||
"anstyle",
|
||||
"clap_lex",
|
||||
"strsim 0.11.1",
|
||||
"unicase 2.6.0",
|
||||
"unicode-width 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7"
|
||||
dependencies = [
|
||||
"heck 0.5.0",
|
||||
"proc-macro2 1.0.89",
|
||||
"quote 1.0.37",
|
||||
"syn 2.0.87",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -485,7 +500,7 @@ dependencies = [
|
||||
"encode_unicode",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"unicode-width",
|
||||
"unicode-width 0.1.14",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
@@ -1184,6 +1199,12 @@ dependencies = [
|
||||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
@@ -2975,7 +2996,7 @@ version = "0.2.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"heck 0.3.3",
|
||||
"proc-macro2 0.4.30",
|
||||
"quote 0.6.13",
|
||||
"syn 0.15.44",
|
||||
@@ -3071,7 +3092,7 @@ version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
|
||||
dependencies = [
|
||||
"unicode-width",
|
||||
"unicode-width 0.1.14",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3463,6 +3484,12 @@ version = "0.1.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-xid"
|
||||
version = "0.1.0"
|
||||
|
Reference in New Issue
Block a user