diff options
author | Sven-Hendrik Haase <svenstaro@gmail.com> | 2021-08-30 03:44:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-30 03:44:29 +0000 |
commit | ba1b9f5cc7adbc3b22786789cb2df50983edb2c2 (patch) | |
tree | 7c25bd00939b8d780cf9e5d7848aa1f97bf74d67 /src/main.rs | |
parent | Merge pull request #586 from svenstaro/fix-warnings (diff) | |
parent | Add clap v3 switch to CHANGELOG (diff) | |
download | miniserve-ba1b9f5cc7adbc3b22786789cb2df50983edb2c2.tar.gz miniserve-ba1b9f5cc7adbc3b22786789cb2df50983edb2c2.zip |
Merge pull request #587 from svenstaro/switch-structopt-to-clap
Switch from structopt to clap v3
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index 398f580..c1d17b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,10 +10,11 @@ use actix_web::{ Responder, }; use actix_web::{middleware, App, HttpRequest, HttpResponse}; -use anyhow::Result; +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 log::{error, warn}; -use structopt::clap::crate_version; -use structopt::StructOpt; use yansi::{Color, Paint}; mod archive; @@ -30,10 +31,22 @@ use crate::config::MiniserveConfig; use crate::errors::ContextualError; fn main() -> Result<()> { - let args = args::CliArgs::from_args(); + let args = args::CliArgs::parse(); if let Some(shell) = args.print_completions { - args::CliArgs::clap().gen_completions_to("miniserve", shell, &mut std::io::stdout()); + 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!"), + } return Ok(()); } |