diff --git a/src/main.rs b/src/main.rs index 3d09fa5..c2f425e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,15 +96,7 @@ async fn host_cmd(args: HostArgs) -> MainResult { } async fn sign_key(args: SignArgs) -> MainResult { - let url = match std::env::var("SSHCA_SERVER") { - Ok(v) => v, - Err(std::env::VarError::NotPresent) => { - return Err("SSHCA_SERVER environment variable is not set".into()); - } - Err(std::env::VarError::NotUnicode(_)) => { - return Err("SSHCA_SERVER environment variable is invalid".into()); - } - }; + let url = get_sshca_server_url()?; let Some(hostname) = get_hostname() else { return Err("Hostname must be valid UTF-8".into()); }; @@ -175,6 +167,18 @@ async fn sign_key(args: SignArgs) -> MainResult { Ok(()) } +fn get_sshca_server_url() -> Result { + match std::env::var("SSHCA_SERVER") { + Ok(v) => Ok(v), + Err(std::env::VarError::NotPresent) => { + Err("SSHCA_SERVER environment variable is not set".into()) + } + Err(std::env::VarError::NotUnicode(_)) => { + Err("SSHCA_SERVER environment variable is invalid".into()) + } + } +} + fn get_hostname() -> Option { gethostname::gethostname().into_string().ok() }