diff options
author | Sven-Hendrik Haase <svenstaro@gmail.com> | 2021-10-18 19:43:42 +0000 |
---|---|---|
committer | Sven-Hendrik Haase <svenstaro@gmail.com> | 2021-10-18 21:57:34 +0000 |
commit | cfe04f849bcaa49ceaff80d0efc315ae3b952a47 (patch) | |
tree | 42fb22ebfa9a26a19566b7ee8b7a045acb6127db /src | |
parent | Merge pull request #618 from aliemjay/revert-unnecessary (diff) | |
download | miniserve-cfe04f849bcaa49ceaff80d0efc315ae3b952a47.tar.gz miniserve-cfe04f849bcaa49ceaff80d0efc315ae3b952a47.zip |
Update clap
Diffstat (limited to 'src')
-rw-r--r-- | src/args.rs | 18 | ||||
-rw-r--r-- | src/main.rs | 21 |
2 files changed, 11 insertions, 28 deletions
diff --git a/src/args.rs b/src/args.rs index c610bbe..449ea28 100644 --- a/src/args.rs +++ b/src/args.rs @@ -1,4 +1,4 @@ -use clap::{Clap, ValueHint}; +use clap::{Parser, ValueHint}; use clap_generate::Shell; use http::header::{HeaderMap, HeaderName, HeaderValue}; use std::net::IpAddr; @@ -8,14 +8,8 @@ use crate::auth; use crate::errors::ContextualError; use crate::renderer; -#[derive(Clap)] -#[clap( - name = "miniserve", - author, - about, - version, - setting = clap::AppSettings::ColoredHelp, -)] +#[derive(Parser)] +#[clap(name = "miniserve", author, about, version)] pub struct CliArgs { /// Be verbose, includes emitting access logs #[clap(short = 'v', long = "verbose")] @@ -75,7 +69,7 @@ pub struct CliArgs { short = 'c', long = "color-scheme", default_value = "squirrel", - possible_values = &renderer::THEME_SLUGS, + possible_values = &*renderer::THEME_SLUGS, case_insensitive = true, )] pub color_scheme: String, @@ -85,7 +79,7 @@ pub struct CliArgs { short = 'd', long = "color-scheme-dark", default_value = "archlinux", - possible_values = &renderer::THEME_SLUGS, + possible_values = &*renderer::THEME_SLUGS, case_insensitive = true, )] pub color_scheme_dark: String, @@ -147,7 +141,7 @@ pub struct CliArgs { pub show_wget_footer: bool, /// Generate completion file for a shell - #[clap(long = "print-completions", value_name = "shell", possible_values = &Shell::variants())] + #[clap(long = "print-completions", value_name = "shell", arg_enum)] pub print_completions: Option<Shell>, /// TLS certificate to use diff --git a/src/main.rs b/src/main.rs index cb11145..c43ac95 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,10 +8,9 @@ use actix_web::web; use actix_web::{http::header::ContentType, Responder}; use actix_web::{middleware, App, HttpRequest, HttpResponse}; use actix_web_httpauth::middleware::HttpAuthentication; -use anyhow::{bail, Result}; -use clap::{crate_version, Clap, IntoApp}; -use clap_generate::generators::{Bash, Elvish, Fish, PowerShell, Zsh}; -use clap_generate::{generate, Shell}; +use anyhow::Result; +use clap::{crate_version, IntoApp, Parser}; +use clap_generate::generate; use log::{error, warn}; use qrcodegen::{QrCode, QrCodeEcc}; use yansi::{Color, Paint}; @@ -34,18 +33,8 @@ fn main() -> Result<()> { if let Some(shell) = args.print_completions { let mut clap_app = args::CliArgs::into_app(); - match shell { - Shell::Bash => generate::<Bash, _>(&mut clap_app, "miniserve", &mut std::io::stdout()), - Shell::Elvish => { - generate::<Elvish, _>(&mut clap_app, "miniserve", &mut std::io::stdout()) - } - Shell::Fish => generate::<Fish, _>(&mut clap_app, "miniserve", &mut std::io::stdout()), - Shell::PowerShell => { - generate::<PowerShell, _>(&mut clap_app, "miniserve", &mut std::io::stdout()) - } - Shell::Zsh => generate::<Zsh, _>(&mut clap_app, "miniserve", &mut std::io::stdout()), - _ => bail!("Invalid shell provided!"), - } + let app_name = clap_app.get_name().to_string(); + generate(shell, &mut clap_app, app_name, &mut io::stdout()); return Ok(()); } |