From 5b094c0391dc7fc3c75bc3f20c81d389037ec91e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 23 Dec 2020 18:12:56 +0000 Subject: [PATCH] use structopt for server args Signed-off-by: Ian Jackson --- Cargo.lock.example | 1 + Cargo.toml | 1 + src/bin/daemon-otter.rs | 11 +++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Cargo.lock.example b/Cargo.lock.example index 26cd911c..e707f27f 100644 --- a/Cargo.lock.example +++ b/Cargo.lock.example @@ -1534,6 +1534,7 @@ dependencies = [ "serde_json", "serde_with", "slotmap", + "structopt", "strum", "tempfile", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index ae7bfeda..c6c5025e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,6 +55,7 @@ serde = { version = "1", features = ["derive","rc"] } serde_json = "1" serde_with = "1" slotmap = { version = "0.4", features = ['serde'] } +structopt = "0.3" strum = { version = "0.20", features = ['derive'] } thiserror = "1" tempfile = "3" diff --git a/src/bin/daemon-otter.rs b/src/bin/daemon-otter.rs index 7241aea3..20030eb8 100644 --- a/src/bin/daemon-otter.rs +++ b/src/bin/daemon-otter.rs @@ -179,8 +179,15 @@ fn main() { // todo test suite for cli at least // todo test suite for web api - let config_filename = env::args().nth(1); - ServerConfig::read(config_filename.as_ref().map(String::as_str))?; + use structopt::StructOpt; + #[derive(StructOpt)] + struct Opts { + config_filename: Option, + } + + let opts = Opts::from_args(); + + ServerConfig::read(opts.config_filename.as_ref().map(String::as_str))?; std::env::set_var("ROCKET_CLI_COLORS", "off"); -- 2.30.2