--- a/Cargo.lock +++ b/Cargo.lock @@ -327,44 +327,12 @@ "atty", "bitflags", "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clap" -version = "3.0.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd1061998a501ee7d4b6d449020df3266ca3124b941ec56cf2005c3779ca142" -dependencies = [ - "atty", - "bitflags", - "clap_derive", - "indexmap", - "lazy_static", - "os_str_bytes", - "strsim 0.10.0", - "termcolor", - "textwrap 0.12.1", + "textwrap", "unicode-width", "vec_map", ] [[package]] -name = "clap_derive" -version = "3.0.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "370f715b81112975b1b69db93e0b56ea4cd4e5002ac43b2da8474106a54096a1" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] name = "cookie-factory" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -478,7 +446,6 @@ "anyhow", "base64", "chrono", - "clap 3.0.0-beta.2", "env_logger", "hostname", "log", @@ -487,6 +454,7 @@ "peg", "serde", "serde_json", + "structopt", "tempfile", "time 0.3.2", "z85", @@ -597,12 +565,6 @@ ] [[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" - -[[package]] name = "heck" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -726,16 +688,6 @@ ] [[package]] -name = "indexmap" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" -dependencies = [ - "autocfg 1.0.1", - "hashbrown", -] - -[[package]] name = "instant" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -955,12 +907,6 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] -name = "os_str_bytes" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ac6fe3538f701e339953a3ebbe4f39941aababa8a3f6964635b24ab526daeac" - -[[package]] name = "ouroboros" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1154,9 +1100,9 @@ [[package]] name = "rand" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ "libc", "rand_chacha 0.3.0", @@ -1458,7 +1404,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" dependencies = [ - "clap 2.33.3", + "clap", "lazy_static", "structopt-derive", ] @@ -1519,7 +1465,7 @@ dependencies = [ "cfg-if", "libc", - "rand 0.8.3", + "rand 0.8.4", "redox_syscall", "remove_dir_all", "winapi", @@ -1539,15 +1485,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "textwrap" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789" dependencies = [ "unicode-width", ] --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,6 @@ [dependencies] anyhow = "1.0" -clap = { version = "3.0.0-beta.2", features = ["derive", "suggestions", "color"] } log = "0.4.14" env_logger = "0.9.0" serde = { version = "1.0", features = ["derive"] } @@ -23,6 +22,7 @@ base64 = "0.13.0" chrono = { version = "0.4.19", features = ["serde"] } z85 = "3.0.3" +structopt = "0.3.23" [workspace] members = ["crates/nixlike", "cmds/install-secrets"] --- a/src/cmds/build_systems.rs +++ b/src/cmds/build_systems.rs @@ -2,28 +2,27 @@ use crate::{command::CommandExt, host::Config, nix::SYSTEMS_ATTRIBUTE}; use anyhow::Result; -use clap::Clap; use log::info; +use structopt::StructOpt; -#[derive(Clap)] -#[clap(group = clap::ArgGroup::new("target"))] +#[derive(StructOpt)] pub struct BuildSystems { /// --builders arg for nix - #[clap(long)] + #[structopt(long)] builders: Option, /// Jobs to run locally - #[clap(long)] + #[structopt(long)] jobs: Option, /// Do not continue on error - #[clap(long)] + #[structopt(long)] fail_fast: bool, - #[clap(long)] + #[structopt(long)] privileged_build: bool, - #[clap(subcommand)] + #[structopt(subcommand)] subcommand: Option, } -#[derive(Clap)] +#[derive(StructOpt)] enum Subcommand { /// Switch to built system until reboot Test, --- a/src/cmds/secrets/mod.rs +++ b/src/cmds/secrets/mod.rs @@ -1,9 +1,9 @@ use crate::{fleetdata::FleetSecret, host::Config}; use anyhow::{bail, Result}; -use clap::Clap; use std::io::{self, Cursor, Read}; +use structopt::StructOpt; -#[derive(Clap)] +#[derive(StructOpt)] pub enum Secrets { /// Force load keys for all defined hosts ForceKeys, @@ -14,9 +14,9 @@ /// Secret owners machines: Vec, /// Override secret if already present - #[clap(long)] + #[structopt(long)] force: bool, - #[clap(long)] + #[structopt(long)] public: Option, }, } --- a/src/host.rs +++ b/src/host.rs @@ -9,7 +9,8 @@ }; use anyhow::Result; -use clap::Clap; +use structopt::clap::ArgGroup; +use structopt::StructOpt; use crate::{command::CommandExt, fleetdata::FleetData}; @@ -102,19 +103,19 @@ } } -#[derive(Clap, Clone)] -#[clap(group = clap::ArgGroup::new("target_hosts"))] +#[derive(StructOpt, Clone)] +#[structopt(group = ArgGroup::with_name("target_hosts"))] pub struct FleetOpts { /// All hosts except those would be skipped - #[clap(long, number_of_values = 1, group = "target_hosts")] + #[structopt(long, number_of_values = 1, group = "target_hosts")] only: Vec, /// Hosts to skip - #[clap(long, number_of_values = 1, group = "target_hosts")] + #[structopt(long, number_of_values = 1, group = "target_hosts")] skip: Vec, /// Host, which should be threaten as current machine - #[clap(long)] + #[structopt(long)] pub localhost: Option, } --- a/src/main.rs +++ b/src/main.rs @@ -8,13 +8,13 @@ mod fleetdata; use anyhow::Result; -use clap::Clap; +use structopt::StructOpt; use cmds::{build_systems::BuildSystems, secrets::Secrets}; use host::{Config, FleetOpts}; -#[derive(Clap)] -#[clap(version = "1.0", author = "CertainLach ")] +#[derive(StructOpt)] +#[structopt(version = "1.0", author = "CertainLach ")] enum Opts { /// Prepare systems for deployments BuildSystems(BuildSystems), @@ -22,11 +22,11 @@ Secrets(Secrets), } -#[derive(Clap)] +#[derive(StructOpt)] struct RootOpts { - #[clap(flatten)] + #[structopt(flatten)] fleet_opts: FleetOpts, - #[clap(subcommand)] + #[structopt(subcommand)] command: Opts, } @@ -42,7 +42,7 @@ env_logger::Builder::new() .filter_level(log::LevelFilter::Info) .init(); - let opts = RootOpts::parse(); + let opts = RootOpts::from_args(); let config = opts.fleet_opts.build()?; match run_command(&config, opts.command) {