From 46dde0da2c3043a0f1611fea830fd10a3a4895dd Mon Sep 17 00:00:00 2001 From: J Robert Ray Date: Tue, 28 May 2024 16:09:52 -0700 Subject: [PATCH] Change any hyphens in SPK_OPT_* env var names A followup to #793, which did the same kind of change for SPK_PKG_* env var names. Signed-off-by: J Robert Ray --- crates/spk-schema/crates/foundation/src/name/mod.rs | 8 ++++++++ crates/spk-schema/crates/foundation/src/option_map/mod.rs | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/spk-schema/crates/foundation/src/name/mod.rs b/crates/spk-schema/crates/foundation/src/name/mod.rs index 453ca2b02..ffdc918b1 100644 --- a/crates/spk-schema/crates/foundation/src/name/mod.rs +++ b/crates/spk-schema/crates/foundation/src/name/mod.rs @@ -12,6 +12,8 @@ pub use error::{Error, Result}; use miette::Diagnostic; use thiserror::Error; +use crate::spec_ops::EnvName; + #[cfg(test)] #[path = "./name_test.rs"] mod name_test; @@ -264,6 +266,12 @@ impl OptNameBuf { } } +impl EnvName for OptNameBuf { + fn env_name(&self) -> String { + self.0.replace('-', "_") + } +} + /// Ensure that the provided string is a valid option name. /// /// This is for checking option names with or without any leading diff --git a/crates/spk-schema/crates/foundation/src/option_map/mod.rs b/crates/spk-schema/crates/foundation/src/option_map/mod.rs index 91244bdc7..1a345fed4 100644 --- a/crates/spk-schema/crates/foundation/src/option_map/mod.rs +++ b/crates/spk-schema/crates/foundation/src/option_map/mod.rs @@ -14,6 +14,7 @@ use once_cell::sync::Lazy; use serde::{Deserialize, Serialize}; use crate::name::{OptName, OptNameBuf, PkgName}; +use crate::spec_ops::EnvName; mod error; mod format; @@ -186,7 +187,7 @@ impl OptionMap { pub fn to_environment(&self) -> HashMap { let mut out = HashMap::default(); for (name, value) in self.iter() { - let var_name = format!("SPK_OPT_{name}"); + let var_name = format!("SPK_OPT_{}", name.env_name()); out.insert(var_name, value.into()); } out