add clap_complete for completion support

This commit is contained in:
Mikaël Cluseau
2025-06-30 17:00:55 +02:00
parent 24a45a7825
commit 4b33c64042
3 changed files with 48 additions and 1 deletions

44
Cargo.lock generated
View File

@ -158,6 +158,18 @@ dependencies = [
"strsim",
]
[[package]]
name = "clap_complete"
version = "4.5.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aad5b1b4de04fead402672b48897030eec1f3bfe1550776322f59f6d6e6a5677"
dependencies = [
"clap",
"clap_lex",
"is_executable",
"shlex",
]
[[package]]
name = "clap_derive"
version = "4.5.40"
@ -215,6 +227,7 @@ version = "0.1.0"
dependencies = [
"bytes",
"clap",
"clap_complete",
"env_logger",
"eyre",
"futures-util",
@ -699,6 +712,15 @@ dependencies = [
"serde",
]
[[package]]
name = "is_executable"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2"
dependencies = [
"winapi",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@ -1630,6 +1652,28 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-link"
version = "0.1.3"

View File

@ -6,6 +6,7 @@ edition = "2024"
[dependencies]
bytes = "1.10.1"
clap = { version = "4.5.40", features = ["derive"] }
clap_complete = { version = "4.5.54", features = ["unstable-dynamic"] }
env_logger = "0.11.8"
eyre = "0.6.12"
futures-util = "0.3.31"

View File

@ -1,4 +1,4 @@
use clap::{Parser, Subcommand};
use clap::{CommandFactory, Parser, Subcommand};
use eyre::{format_err, Result};
use futures_util::StreamExt;
use tokio::io::AsyncWriteExt;
@ -54,6 +54,8 @@ enum ClusterCommand {
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<()> {
clap_complete::CompleteEnv::with_factory(Cli::command).complete();
let cli = Cli::parse();
env_logger::builder()