diff options
Diffstat (limited to 'src/context.rs')
| -rw-r--r-- | src/context.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/context.rs b/src/context.rs index 89e2c3e..f67c302 100644 --- a/src/context.rs +++ b/src/context.rs | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | use eyre::{Context as _, Result}; | 1 | use eyre::Result; |
| 2 | 2 | ||
| 3 | use crate::machine::Machine; | 3 | use crate::machine::Machine; |
| 4 | 4 | ||
| @@ -60,7 +60,7 @@ impl Context { | |||
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | async fn get_execution_node() -> Result<ExecutionNode> { | 62 | async fn get_execution_node() -> Result<ExecutionNode> { |
| 63 | let hostname = get_hostname().await?; | 63 | let hostname = get_hostname().await; |
| 64 | let node = match hostname.as_str() { | 64 | let node = match hostname.as_str() { |
| 65 | "frontend" => ExecutionNode::Frontend, | 65 | "frontend" => ExecutionNode::Frontend, |
| 66 | _ => match Machine::from_hostname(&hostname) { | 66 | _ => match Machine::from_hostname(&hostname) { |
| @@ -71,11 +71,14 @@ async fn get_execution_node() -> Result<ExecutionNode> { | |||
| 71 | Ok(node) | 71 | Ok(node) |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | async fn get_hostname() -> Result<String> { | 74 | async fn get_hostname() -> String { |
| 75 | if let Ok(hostname) = tokio::fs::read_to_string("/etc/hostname").await { | 75 | let hostname = if let Ok(hostname) = tokio::fs::read_to_string("/etc/hostname").await { |
| 76 | Ok(hostname) | 76 | hostname |
| 77 | } else if let Ok(hostname) = std::env::var("HOSTNAME") { | ||
| 78 | hostname | ||
| 77 | } else { | 79 | } else { |
| 78 | std::env::var("HOSTNAME").context("reading HOSTNAME env var") | 80 | tracing::warn!("unable to obtain hostname, using empty string"); |
| 79 | } | 81 | String::default() |
| 80 | .map(|hostname| hostname.trim().to_string()) | 82 | }; |
| 83 | hostname.trim().to_string() | ||
| 81 | } | 84 | } |
