From b3366dd5b6bb44d7592f098afc67b4c07e5933eb Mon Sep 17 00:00:00 2001 From: Ajeet D'Souza <98ajeet@gmail.com> Date: Thu, 17 Feb 2022 04:16:45 +0530 Subject: [PATCH] Upgrade to clap v3.1.0 --- Cargo.lock | 83 +++++++++++++++++++++----------- Cargo.toml | 8 +-- build.rs | 24 ++++----- contrib/completions/_zoxide.ps1 | 3 +- src/app/mod.rs | 26 ---------- src/{app/_app.rs => cmd/_cmd.rs} | 8 +-- src/{app => cmd}/add.rs | 2 +- src/{app => cmd}/import.rs | 2 +- src/{app => cmd}/init.rs | 2 +- src/cmd/mod.rs | 26 ++++++++++ src/{app => cmd}/query.rs | 2 +- src/{app => cmd}/remove.rs | 2 +- src/main.rs | 6 +-- src/shell.rs | 2 +- xtask/Cargo.toml | 2 +- 15 files changed, 113 insertions(+), 85 deletions(-) delete mode 100644 src/app/mod.rs rename src/{app/_app.rs => cmd/_cmd.rs} (94%) rename src/{app => cmd}/add.rs (97%) rename src/{app => cmd}/import.rs (99%) rename src/{app => cmd}/init.rs (96%) create mode 100644 src/cmd/mod.rs rename src/{app => cmd}/query.rs (98%) rename src/{app => cmd}/remove.rs (98%) diff --git a/Cargo.lock b/Cargo.lock index 55745e0..786ac91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "askama" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d8f355701c672c2ba3d718acbd213f740beea577cc4eae66accdffe15be1882" +checksum = "fb98f10f371286b177db5eeb9a6e5396609555686a35e1d4f7b9a9c6d8af0139" dependencies = [ "askama_derive", "askama_escape", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "askama_derive" -version = "0.11.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84704cab5b7ae0fd3a9f78ee5eb7b27f3749df445f04623db6633459ae283267" +checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71" dependencies = [ "askama_shared", "proc-macro2", @@ -41,17 +41,19 @@ dependencies = [ [[package]] name = "askama_escape" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1bb320f97e6edf9f756bf015900038e43c7700e059688e5724a928c8f3b8d5" +checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" [[package]] name = "askama_shared" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae03eebba55a2697a376e58b573a29fe36893157173ac8df312ad85f3c0e012" +checksum = "e3d372b233d121e841b4cc5dc716538755e338ca902b3e12ac131ffb6b9d5fbf" dependencies = [ "askama_escape", + "mime", + "mime_guess", "nom", "proc-macro2", "quote", @@ -85,9 +87,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bincode" @@ -123,9 +125,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.0.13" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08799f92c961c7a1cf0cc398a9073da99e21ce388b46372c37f3191f2f3eed3e" +checksum = "e5f1fea81f183005ced9e59cdb01737ef2423956dac5a6d731b06b2ecfaa3467" dependencies = [ "atty", "bitflags", @@ -140,18 +142,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "3.0.5" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4dabb7e2f006497e1da045feaa512acf0686f76b68d94925da2d9422dcb521" +checksum = "23eec4dd324308f49d8bf86a2732078c34d57955fec1e1d865554fc37c15d420" dependencies = [ "clap", ] [[package]] name = "clap_complete_fig" -version = "3.0.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29cc003d824770d10072f4aa4a958e66d33d74a9cb7339595ac2a445d80d50a0" +checksum = "5c11f6f44afea4aee21bb57a5297879c88ac8dc97224fbbbe796edd60a098f0e" dependencies = [ "clap", "clap_complete", @@ -159,9 +161,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.0.12" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd2078197a22f338bd4fbf7d6387eb6f0d6a3c69e6cbc09f5c93e97321fd92a" +checksum = "5fd1122e63869df2cb309f449da1ad54a7c6dfeb7c7e6ccd8e0825d9eb93bb72" dependencies = [ "heck", "proc-macro-error", @@ -172,9 +174,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if", "lazy_static", @@ -344,9 +346,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.116" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "565dbd88872dbe4cc8a46e527f26483c1d1f7afa6b884a3bd6cd893d4f98da74" +checksum = "06e509672465a0504304aa87f9f176f2b2b716ed8fb105ebe5c02dc6dce96a94" [[package]] name = "log" @@ -363,6 +365,22 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -484,9 +502,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "rand_core", ] @@ -584,9 +602,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "0486718e92ec9a68fbed73bb5ef687d71103b142595b406835649bebd33f72c7" [[package]] name = "serde" @@ -610,9 +628,9 @@ dependencies = [ [[package]] name = "shell-words" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "strsim" @@ -695,6 +713,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-xid" version = "0.2.2" diff --git a/Cargo.toml b/Cargo.toml index 4c8e4db..1337713 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ members = ["xtask/"] anyhow = "1.0.32" askama = { version = "0.11.0", default-features = false } bincode = "1.3.1" -clap = { version = "3.0.0", features = ["derive"] } +clap = { version = "3.1.0", features = ["derive"] } dirs = "4.0.0" dunce = "1.0.1" glob = "0.3.0" @@ -36,9 +36,9 @@ rand = { version = "0.8.4", features = [ ], default-features = false } [build-dependencies] -clap = { version = "3.0.0", features = ["derive"] } -clap_complete = "3.0.0" -clap_complete_fig = "3.0.0" +clap = { version = "3.1.0", features = ["derive"] } +clap_complete = "3.1.0" +clap_complete_fig = "3.1.0" [dev-dependencies] assert_cmd = "2.0.0" diff --git a/build.rs b/build.rs index 57df123..2c1df03 100644 --- a/build.rs +++ b/build.rs @@ -32,25 +32,25 @@ fn git_version() -> Option { } fn generate_completions() -> io::Result<()> { - #[path = "src/app/_app.rs"] - mod app; + #[path = "src/cmd/_cmd.rs"] + mod cmd; - use app::App; - use clap::IntoApp; + use clap::CommandFactory; use clap_complete::generate_to; - use clap_complete::Shell::{Bash, Elvish, Fish, PowerShell, Zsh}; + use clap_complete::shells::{Bash, Elvish, Fish, PowerShell, Zsh}; use clap_complete_fig::Fig; + use cmd::Cmd; - let app = &mut App::into_app(); + let cmd = &mut Cmd::command(); let bin_name = env!("CARGO_PKG_NAME"); let out_dir = "contrib/completions"; - generate_to(Bash, app, bin_name, out_dir)?; - generate_to(Elvish, app, bin_name, out_dir)?; - generate_to(Fig, app, bin_name, out_dir)?; - generate_to(Fish, app, bin_name, out_dir)?; - generate_to(PowerShell, app, bin_name, out_dir)?; - generate_to(Zsh, app, bin_name, out_dir)?; + generate_to(Bash, cmd, bin_name, out_dir)?; + generate_to(Elvish, cmd, bin_name, out_dir)?; + generate_to(Fig, cmd, bin_name, out_dir)?; + generate_to(Fish, cmd, bin_name, out_dir)?; + generate_to(PowerShell, cmd, bin_name, out_dir)?; + generate_to(Zsh, cmd, bin_name, out_dir)?; Ok(()) } diff --git a/contrib/completions/_zoxide.ps1 b/contrib/completions/_zoxide.ps1 index bb52da0..ebe83de 100644 --- a/contrib/completions/_zoxide.ps1 +++ b/contrib/completions/_zoxide.ps1 @@ -12,7 +12,8 @@ Register-ArgumentCompleter -Native -CommandName 'zoxide' -ScriptBlock { $element = $commandElements[$i] if ($element -isnot [StringConstantExpressionAst] -or $element.StringConstantType -ne [StringConstantType]::BareWord -or - $element.Value.StartsWith('-')) { + $element.Value.StartsWith('-') -or + $element.Value -eq $wordToComplete) { break } $element.Value diff --git a/src/app/mod.rs b/src/app/mod.rs deleted file mode 100644 index 04c2fe1..0000000 --- a/src/app/mod.rs +++ /dev/null @@ -1,26 +0,0 @@ -mod _app; -mod add; -mod import; -mod init; -mod query; -mod remove; - -use anyhow::Result; - -pub use crate::app::_app::*; - -pub trait Run { - fn run(&self) -> Result<()>; -} - -impl Run for App { - fn run(&self) -> Result<()> { - match self { - App::Add(cmd) => cmd.run(), - App::Import(cmd) => cmd.run(), - App::Init(cmd) => cmd.run(), - App::Query(cmd) => cmd.run(), - App::Remove(cmd) => cmd.run(), - } - } -} diff --git a/src/app/_app.rs b/src/cmd/_cmd.rs similarity index 94% rename from src/app/_app.rs rename to src/cmd/_cmd.rs index 3d19da5..d75a86f 100644 --- a/src/app/_app.rs +++ b/src/cmd/_cmd.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use clap::{AppSettings, ArgEnum, Parser, ValueHint}; +use clap::{ArgEnum, Parser, ValueHint}; const ENV_HELP: &str = "ENVIRONMENT VARIABLES: _ZO_DATA_DIR Path for zoxide data files @@ -16,11 +16,11 @@ const ENV_HELP: &str = "ENVIRONMENT VARIABLES: about, author, after_help = ENV_HELP, - global_setting(AppSettings::DisableHelpSubcommand), - global_setting(AppSettings::PropagateVersion), + disable_help_subcommand = true, + propagate_version = true, version = option_env!("ZOXIDE_VERSION").unwrap_or_default() )] -pub enum App { +pub enum Cmd { Add(Add), Import(Import), Init(Init), diff --git a/src/app/add.rs b/src/cmd/add.rs similarity index 97% rename from src/app/add.rs rename to src/cmd/add.rs index 7477701..1bbe697 100644 --- a/src/app/add.rs +++ b/src/cmd/add.rs @@ -2,7 +2,7 @@ use std::path::Path; use anyhow::{bail, Result}; -use crate::app::{Add, Run}; +use crate::cmd::{Add, Run}; use crate::db::DatabaseFile; use crate::{config, util}; diff --git a/src/app/import.rs b/src/cmd/import.rs similarity index 99% rename from src/app/import.rs rename to src/cmd/import.rs index 90d66bc..83c939a 100644 --- a/src/app/import.rs +++ b/src/cmd/import.rs @@ -2,7 +2,7 @@ use std::fs; use anyhow::{bail, Context, Result}; -use crate::app::{Import, ImportFrom, Run}; +use crate::cmd::{Import, ImportFrom, Run}; use crate::config; use crate::db::{Database, DatabaseFile, Dir}; diff --git a/src/app/init.rs b/src/cmd/init.rs similarity index 96% rename from src/app/init.rs rename to src/cmd/init.rs index 64186ad..639ec0f 100644 --- a/src/app/init.rs +++ b/src/cmd/init.rs @@ -3,7 +3,7 @@ use std::io::{self, Write}; use anyhow::{Context, Result}; use askama::Template; -use crate::app::{Init, InitShell, Run}; +use crate::cmd::{Init, InitShell, Run}; use crate::config; use crate::error::BrokenPipeHandler; use crate::shell::{self, Opts}; diff --git a/src/cmd/mod.rs b/src/cmd/mod.rs new file mode 100644 index 0000000..c9cab3c --- /dev/null +++ b/src/cmd/mod.rs @@ -0,0 +1,26 @@ +mod _cmd; +mod add; +mod import; +mod init; +mod query; +mod remove; + +use anyhow::Result; + +pub use crate::cmd::_cmd::*; + +pub trait Run { + fn run(&self) -> Result<()>; +} + +impl Run for Cmd { + fn run(&self) -> Result<()> { + match self { + Cmd::Add(cmd) => cmd.run(), + Cmd::Import(cmd) => cmd.run(), + Cmd::Init(cmd) => cmd.run(), + Cmd::Query(cmd) => cmd.run(), + Cmd::Remove(cmd) => cmd.run(), + } + } +} diff --git a/src/app/query.rs b/src/cmd/query.rs similarity index 98% rename from src/app/query.rs rename to src/cmd/query.rs index 9262c08..109640b 100644 --- a/src/app/query.rs +++ b/src/cmd/query.rs @@ -2,7 +2,7 @@ use std::io::{self, Write}; use anyhow::{Context, Result}; -use crate::app::{Query, Run}; +use crate::cmd::{Query, Run}; use crate::db::{Database, DatabaseFile}; use crate::error::BrokenPipeHandler; use crate::fzf::Fzf; diff --git a/src/app/remove.rs b/src/cmd/remove.rs similarity index 98% rename from src/app/remove.rs rename to src/cmd/remove.rs index a967534..7cf5212 100644 --- a/src/app/remove.rs +++ b/src/cmd/remove.rs @@ -2,7 +2,7 @@ use std::io::{self, Write}; use anyhow::{bail, Context, Result}; -use crate::app::{Remove, Run}; +use crate::cmd::{Remove, Run}; use crate::db::DatabaseFile; use crate::fzf::Fzf; use crate::{config, util}; diff --git a/src/main.rs b/src/main.rs index c9584e4..4bebcaf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -mod app; +mod cmd; mod config; mod db; mod error; @@ -11,7 +11,7 @@ use std::{env, process}; use clap::Parser; -use crate::app::{App, Run}; +use crate::cmd::{Cmd, Run}; use crate::error::SilentExit; pub fn main() { @@ -19,7 +19,7 @@ pub fn main() { env::remove_var("RUST_LIB_BACKTRACE"); env::remove_var("RUST_BACKTRACE"); - if let Err(e) = App::parse().run() { + if let Err(e) = Cmd::parse().run() { match e.downcast::() { Ok(SilentExit { code }) => process::exit(code), Err(e) => { diff --git a/src/shell.rs b/src/shell.rs index fe06e5d..877b632 100644 --- a/src/shell.rs +++ b/src/shell.rs @@ -1,4 +1,4 @@ -use crate::app::InitHook; +use crate::cmd::InitHook; #[derive(Debug, Eq, PartialEq)] pub struct Opts<'a> { diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 5f48bcd..b77af24 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -6,6 +6,6 @@ publish = false [dependencies] anyhow = "1.0.32" -clap = { version = "3.0.0", features = ["derive"] } +clap = { version = "3.1.0", features = ["derive"] } ignore = "0.4.18" shell-words = "1.0.0"