aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2021-03-28 19:07:22 +0000
committerGitHub <noreply@github.com>2021-03-28 19:07:22 +0000
commitdbb01e65af551342bce1d3f4664b2c37a46b3f08 (patch)
treef9ce11b4602c5c97fc6c8e9d940e321fa2fa90f9 /src/main.rs
parent(cargo-release) start next development iteration 0.12.2-alpha.0 (diff)
parentGenerate completions with `miniserve --print-completions <shell>` (diff)
downloadminiserve-dbb01e65af551342bce1d3f4664b2c37a46b3f08.tar.gz
miniserve-dbb01e65af551342bce1d3f4664b2c37a46b3f08.zip
Merge pull request #482 from rouge8/shell-completions
Generate completions with `miniserve --print-completions <shell>`
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index 17ab204..747a705 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -11,6 +11,7 @@ use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::thread;
use std::time::Duration;
use structopt::clap::crate_version;
+use structopt::StructOpt;
use yansi::{Color, Paint};
mod archive;
@@ -101,20 +102,27 @@ pub struct MiniserveConfig {
}
fn main() {
- match run() {
+ let args = args::CliArgs::from_args();
+
+ if let Some(shell) = args.print_completions {
+ args::CliArgs::clap().gen_completions_to("miniserve", shell, &mut std::io::stdout());
+ return;
+ }
+
+ let miniserve_config = args::parse_args(args);
+
+ match run(miniserve_config) {
Ok(()) => (),
Err(e) => errors::log_error_chain(e.to_string()),
}
}
#[actix_web::main(miniserve)]
-async fn run() -> Result<(), ContextualError> {
+async fn run(miniserve_config: MiniserveConfig) -> Result<(), ContextualError> {
if cfg!(windows) && !Paint::enable_windows_ascii() {
Paint::disable();
}
- let miniserve_config = args::parse_args();
-
let log_level = if miniserve_config.verbose {
simplelog::LevelFilter::Info
} else {