chiark / gitweb /
use structopt for server args
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 18:12:56 +0000 (18:12 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 18:12:56 +0000 (18:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Cargo.lock.example
Cargo.toml
src/bin/daemon-otter.rs

index 26cd911c37687f5f8828b6cd78b43ae9440d545b..e707f27f9745e459e320bbbe24f9abc198f3a62d 100644 (file)
@@ -1534,6 +1534,7 @@ dependencies = [
  "serde_json",
  "serde_with",
  "slotmap",
+ "structopt",
  "strum",
  "tempfile",
  "thiserror",
index ae7bfeda499dc1ae2009a213345911d7ff4b410e..c6c5025eb907fa5c78865bf92418c3c92a486098 100644 (file)
@@ -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"
index 7241aea3e25dd7155504aafdae3fafedc0b20b1c..20030eb84d0315a49b0791a329e6272b5d324dec 100644 (file)
@@ -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<String>,
+  }
+
+  let opts = Opts::from_args();
+
+  ServerConfig::read(opts.config_filename.as_ref().map(String::as_str))?;
 
   std::env::set_var("ROCKET_CLI_COLORS", "off");