provisioning-core/nulib/domain/utils/imports.nu

76 lines
1.9 KiB
Text

# Import Helper Functions
# Provides clean, environment-based imports to avoid relative paths
# Selective imports (ADR-025 Phase 3 Layer 2).
use platform/config/accessor/functions.nu [
get-providers-path get-prov-lib-path get-core-nulib-path
]
# Provider middleware imports
export def prov-middleware [] {
(get-prov-lib-path) | path join "middleware.nu"
}
export def prov-env-middleware [] {
(get-prov-lib-path) | path join "env_middleware.nu"
}
# Provider-specific imports
export def aws-env [] {
(get-providers-path) | path join "aws" "nulib" "aws" "env.nu"
}
export def aws-servers [] {
(get-providers-path) | path join "aws" "nulib" "aws" "servers.nu"
}
export def upcloud-env [] {
(get-providers-path) | path join "upcloud" "nulib" "upcloud" "env.nu"
}
export def upcloud-servers [] {
(get-providers-path) | path join "upcloud" "nulib" "upcloud" "servers.nu"
}
export def local-env [] {
(get-providers-path) | path join "local" "nulib" "local" "env.nu"
}
export def local-servers [] {
(get-providers-path) | path join "local" "nulib" "local" "servers.nu"
}
# Core module imports
export def core-servers [] {
(get-core-nulib-path) | path join "servers"
}
export def core-taskservs [] {
(get-core-nulib-path) | path join "taskservs"
}
export def core-clusters [] {
(get-core-nulib-path) | path join "clusters"
}
# Lib provisioning imports (for internal cross-references)
export def lib-utils [] {
(get-core-nulib-path) | path join "lib_provisioning" "utils"
}
export def lib-secrets [] {
(get-core-nulib-path) | path join "lib_provisioning" "secrets"
}
export def lib-sops [] {
(get-core-nulib-path) | path join "lib_provisioning" "sops"
}
export def lib-ai [] {
(get-core-nulib-path) | path join "lib_provisioning" "ai"
}
# Helper for dynamic imports with specific files
export def import-path [base: string, file: string] {
$base | path join $file
}