From f4300851efcc3837ad2a125f2c6935d16fbb7943 Mon Sep 17 00:00:00 2001 From: travis laduke Date: Tue, 28 Mar 2023 12:59:57 -0700 Subject: [PATCH] Merge the cli args with the conf file args re #217 --- src/cli.rs | 52 +++++++++++++++++++++++----------------------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index dbce2d8..ed269ca 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -87,33 +87,19 @@ pub struct StartArgs { impl Into for StartArgs { fn into(self) -> Launcher { - if let Some(config) = self.config { - let res = Launcher::new_from_config(config.to_str().unwrap(), self.config_type); - match res { - Ok(mut res) => { - res.network_id = Some(self.network_id.clone()); - res - } - Err(e) => { - eprintln!("{}", e); - std::process::exit(1); - } - } - } else { - Launcher { - domain: self.domain, - hosts: self.hosts, - secret: self.secret, - token: self.token, - wildcard: self.wildcard, - chain_cert: self.chain_cert, - tls_cert: self.tls_cert, - tls_key: self.tls_key, - log_level: self.log_level, - network_id: Some(self.network_id), - local_url: self.local_url, - no_configure_network: self.no_configure_network, - } + Launcher { + domain: self.domain, + hosts: self.hosts, + secret: self.secret, + token: self.token, + wildcard: self.wildcard, + chain_cert: self.chain_cert, + tls_cert: self.tls_cert, + tls_key: self.tls_key, + log_level: self.log_level, + network_id: Some(self.network_id), + local_url: self.local_url, + no_configure_network: self.no_configure_network, } } } @@ -147,9 +133,17 @@ pub async fn init() -> Result<(), anyhow::Error> { } async fn start(args: StartArgs) -> Result<(), anyhow::Error> { - let launcher: Launcher = args.into(); + let cli_args: Launcher = args.clone().into(); + + let merged_args = args.config + .and_then(|path| Launcher::new_from_config(path.to_str()?, args.config_type).ok()) + .map(|mut config| { + config.network_id = Some(args.network_id.clone()); + config + }) + .map_or(cli_args.clone(), |conf| conf.merge(cli_args)); - launcher.start().await?; + merged_args.start().await?; Ok(()) }