From: Ian Jackson Date: Wed, 23 Dec 2020 18:12:56 +0000 (+0000) Subject: use structopt for server args X-Git-Tag: otter-0.2.0~142 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5b094c0391dc7fc3c75bc3f20c81d389037ec91e;p=otter.git use structopt for server args Signed-off-by: Ian Jackson --- 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");