From 21bc01feabc1c3c6cb05232b40042570b4792263 Mon Sep 17 00:00:00 2001 From: Sven-Hendrik Haase Date: Mon, 30 Aug 2021 05:04:10 +0200 Subject: Switch from structopt to clap v3 --- src/main.rs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/main.rs') 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::(&mut clap_app, "miniserve", &mut std::io::stdout()), + Shell::Elvish => { + generate::(&mut clap_app, "miniserve", &mut std::io::stdout()) + } + Shell::Fish => generate::(&mut clap_app, "miniserve", &mut std::io::stdout()), + Shell::PowerShell => { + generate::(&mut clap_app, "miniserve", &mut std::io::stdout()) + } + Shell::Zsh => generate::(&mut clap_app, "miniserve", &mut std::io::stdout()), + _ => bail!("Invalid shell provided!"), + } return Ok(()); } -- cgit v1.2.3