diff --git a/Cargo.lock b/Cargo.lock index 145e002..806a5e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -189,27 +189,26 @@ dependencies = [ [[package]] name = "clap" -version = "3.0.0-beta.4" +version = "3.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcd70aa5597dbc42f7217a543f9ef2768b2ef823ba29036072d30e1d88e98406" +checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", - "lazy_static", - "os_str_bytes", + "once_cell", "strsim", "termcolor", "textwrap", - "vec_map", ] [[package]] name = "clap_derive" -version = "3.0.0-beta.4" +version = "3.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5bb0d655624a0b8770d1c178fb8ffcb1f91cc722cb08f451e3dc72465421ac" +checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" dependencies = [ "heck", "proc-macro-error", @@ -218,6 +217,15 @@ dependencies = [ "syn", ] +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "console" version = "0.15.0" @@ -551,12 +559,9 @@ checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "hermit-abi" @@ -936,9 +941,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.8.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] name = "opaque-debug" @@ -981,9 +986,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "3.1.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d" +checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa" [[package]] name = "password-hash" @@ -1288,18 +1293,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" dependencies = [ "proc-macro2", "quote", @@ -1442,12 +1447,9 @@ checksum = "78fbf2dd23e79c28ccfa2472d3e6b3b189866ffef1aeb91f17c2d968b6586378" [[package]] name = "textwrap" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" -dependencies = [ - "unicode-width", -] +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" @@ -1609,12 +1611,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" - [[package]] name = "unicode-width" version = "0.1.9" @@ -1639,12 +1635,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.3" diff --git a/Cargo.toml b/Cargo.toml index 4b932a5..a22c80d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,12 +8,12 @@ edition = "2021" [dependencies] anyhow = "1.0.58" -clap = "3.0.0-beta.4" +clap = { version = "3.2.8", features = ["derive", "env", "cargo"] } dialoguer = "0.10.1" dirs = "4.0.0" node-semver = "2.0.0" reqwest = { version = "0.11.11", features = ["blocking"] } -serde = { version = "1.0.137", features = ["derive"] } +serde = { version = "1.0.138", features = ["derive"] } serde_json = "1.0.82" [target.'cfg(unix)'.dependencies] diff --git a/src/main.rs b/src/main.rs index 9410b99..eef6623 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,7 @@ use std::{ }; use anyhow::Result; -use clap::{AppSettings, Clap, ValueHint}; +use clap::{AppSettings, Parser, ValueHint}; use crate::subcommand::{ install::InstallCommand, list::ListCommand, parse_version::ParseVersionCommand, @@ -15,7 +15,7 @@ mod archives; mod node_version; mod subcommand; -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] enum Subcommands { List(ListCommand), Install(InstallCommand), @@ -24,7 +24,7 @@ enum Subcommands { ParseVersion(ParseVersionCommand), } -#[derive(Clap, Debug)] +#[derive(Parser, Debug)] #[clap( name = "nvm(-rust)", about = "Node Version Manager (but better, and in Rust)", diff --git a/src/subcommand/install.rs b/src/subcommand/install.rs index 3c293ef..5054e3c 100644 --- a/src/subcommand/install.rs +++ b/src/subcommand/install.rs @@ -1,7 +1,7 @@ use std::{borrow::Borrow, path::Path}; use anyhow::{Context, Result}; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use node_semver::Range; use crate::{ @@ -11,7 +11,7 @@ use crate::{ Config, }; -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] #[clap( about = "Install a new node version", alias = "i", diff --git a/src/subcommand/list.rs b/src/subcommand/list.rs index 0f54845..20edfe3 100644 --- a/src/subcommand/list.rs +++ b/src/subcommand/list.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, ops::Deref}; use anyhow::Result; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use node_semver::Range; use crate::{ @@ -32,7 +32,7 @@ fn latest_version_string_from(status: &VersionStatus) -> String { } } -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] #[clap( about = "List installed and released node versions", alias = "ls", diff --git a/src/subcommand/mod.rs b/src/subcommand/mod.rs index 71e92dd..263aa7d 100644 --- a/src/subcommand/mod.rs +++ b/src/subcommand/mod.rs @@ -8,6 +8,6 @@ pub mod parse_version; pub mod switch; pub mod uninstall; -pub trait Action { +pub trait Action { fn run(config: &Config, options: &T) -> Result<()>; } diff --git a/src/subcommand/parse_version.rs b/src/subcommand/parse_version.rs index bf65673..0a12019 100644 --- a/src/subcommand/parse_version.rs +++ b/src/subcommand/parse_version.rs @@ -1,10 +1,10 @@ use anyhow::Result; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use node_semver::Range; use crate::{node_version::is_version_range, subcommand::Action, Config}; -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] #[clap( about = "Echo what a version string will be parsed to", alias = "pv", diff --git a/src/subcommand/switch.rs b/src/subcommand/switch.rs index 8ed807a..f8e4681 100644 --- a/src/subcommand/switch.rs +++ b/src/subcommand/switch.rs @@ -9,7 +9,7 @@ use std::os::unix::fs::symlink; use std::os::windows::fs::symlink_dir; use anyhow::Result; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use node_semver::{Range, Version}; use crate::{ @@ -19,7 +19,7 @@ use crate::{ Config, }; -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] #[clap( about = "Switch to an installed node version", alias = "switch", diff --git a/src/subcommand/uninstall.rs b/src/subcommand/uninstall.rs index 55d7704..11e957c 100644 --- a/src/subcommand/uninstall.rs +++ b/src/subcommand/uninstall.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use clap::{AppSettings, Clap}; +use clap::{AppSettings, Parser}; use node_semver::Range; use crate::{ @@ -9,7 +9,7 @@ use crate::{ Config, }; -#[derive(Clap, Clone, Debug)] +#[derive(Parser, Clone, Debug)] #[clap( about = "Uninstall a version", alias = "r",