prvng_core/nulib/sops_env.nu

32 lines
1.5 KiB
Plaintext
Raw Permalink Normal View History

2025-10-07 10:32:04 +01:00
export-env {
if $env.CURRENT_INFRA_PATH != null and $env.CURRENT_INFRA_PATH != "" {
#use sops/lib.nu get_def_sops
#use sops/lib.nu get_def_age
if $env.CURRENT_KLOUD_PATH? != null {
$env.PROVISIONING_SOPS = (get_def_sops $env.CURRENT_KLOUD_PATH)
$env.PROVISIONING_KAGE = (get_def_age $env.CURRENT_KLOUD_PATH)
} else {
$env.PROVISIONING_SOPS = (get_def_sops $env.CURRENT_INFRA_PATH)
$env.PROVISIONING_KAGE = (get_def_age $env.CURRENT_INFRA_PATH)
# let context = (setup_user_context)
# Refactored from try-catch to do/complete for explicit error handling
# let kage_result = (do { $context | get "kage_path" } | complete)
# let kage_path = if $kage_result.exit_code == 0 { ($kage_result.stdout | str trim | str replace "KLOUD_PATH" $env.PROVISIONING_KLOUD_PATH) } else { "" }
# if $kage_path != "" {
2025-10-07 10:32:04 +01:00
# $env.PROVISIONING_KAGE = $kage_path
# }
}
2025-10-07 10:32:04 +01:00
print $env
if $env.PROVISIONING_KAGE? != null {
2025-10-07 10:32:04 +01:00
$env.SOPS_AGE_KEY_FILE = $env.PROVISIONING_KAGE
let key_parts = (grep "public key:" $env.SOPS_AGE_KEY_FILE | split row ":")
$env.SOPS_AGE_RECIPIENTS = if ($key_parts | length) > 1 { $key_parts | get 1 | str trim } else { "" }
if $env.SOPS_AGE_RECIPIENTS == "" {
2025-10-07 10:32:04 +01:00
print $"❗Error no key found in (_ansi red_bold)($env.SOPS_AGE_KEY_FILE)(_ansi reset) file for secure AGE operations "
exit 1
}
}
}
}