aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2021-10-18 19:43:42 +0000
committerSven-Hendrik Haase <svenstaro@gmail.com>2021-10-18 21:57:34 +0000
commitcfe04f849bcaa49ceaff80d0efc315ae3b952a47 (patch)
tree42fb22ebfa9a26a19566b7ee8b7a045acb6127db /src
parentMerge pull request #618 from aliemjay/revert-unnecessary (diff)
downloadminiserve-cfe04f849bcaa49ceaff80d0efc315ae3b952a47.tar.gz
miniserve-cfe04f849bcaa49ceaff80d0efc315ae3b952a47.zip
Update clap
Diffstat (limited to 'src')
-rw-r--r--src/args.rs18
-rw-r--r--src/main.rs21
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(());
}