chiark / gitweb /
provide for client opts
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 4 Aug 2021 00:37:35 +0000 (01:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 4 Aug 2021 00:37:42 +0000 (01:37 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/client.rs
src/config.rs

index 9ae11353aa43f3b47d93d1cddd88f33cc404f032..89857d57b482507e5069f15d1ee7744b048b76a8 100644 (file)
@@ -5,6 +5,12 @@
 use hippotat::prelude::*;
 use hippotat_macros::into_crlfs;
 
+#[derive(StructOpt,Debug)]
+pub struct Opts {
+  #[structopt(flatten)]
+  config: config::Opts,
+}
+
 type OutstandingRequest<'r> = Pin<Box<
     dyn Future<Output=Option<Bytes>> + Send + 'r
     >>;
@@ -280,7 +286,9 @@ async fn run_client<C:HCC>(
 
 #[tokio::main]
 async fn main() -> Result<(), AE> {
-  let ics = config::read(LinkEnd::Client)?;
+  let opts = Opts::from_args();
+
+  let ics = config::read(&opts.config, LinkEnd::Client)?;
   if ics.is_empty() { throw!(anyhow!("no associations with server(s)")); }
 
   env_logger::init();
index 92c584b833f4f06b23fc3edda27d451b66cde535..5249d20b2c880d94ce60488f5079701949be5256 100644 (file)
@@ -767,9 +767,7 @@ impl InstanceConfig {
 }
 
 #[throws(AE)]
-pub fn read(end: LinkEnd) -> Vec<InstanceConfig> {
-  let opts = config::Opts::from_args();
-
+pub fn read(opts: &Opts, end: LinkEnd) -> Vec<InstanceConfig> {
   let agg = (||{
     let mut agg = Aggregate::default();
     agg.keys_allowed.extend(