129 lines
4.6 KiB
Text
129 lines
4.6 KiB
Text
# Workspace Configuration Verification Script
|
||
# Confirms that config.defaults.toml is NOT loaded at runtime
|
||
|
||
export def verify-workspace-architecture [] {
|
||
print "🔍 Verifying Workspace Configuration Architecture"
|
||
print "=================================================="
|
||
print ""
|
||
|
||
mut all_checks_passed = true
|
||
|
||
# Check 1: Templates directory exists
|
||
print "📋 Check 1: Template directory exists"
|
||
let templates_dir = ($env.PROVISIONING | path join "config/templates")
|
||
if ($templates_dir | path exists) {
|
||
print " ✅ Templates directory found: $templates_dir"
|
||
} else {
|
||
print " ❌ Templates directory NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
|
||
# Check 2: All template files exist
|
||
print "\n📋 Check 2: All template files exist"
|
||
let required_templates = [
|
||
"workspace-provisioning.yaml.template"
|
||
"provider-aws.toml.template"
|
||
"provider-local.toml.template"
|
||
"provider-upcloud.toml.template"
|
||
"kms.toml.template"
|
||
"user-context.yaml.template"
|
||
"README.md"
|
||
]
|
||
|
||
for template in $required_templates {
|
||
let template_path = ($templates_dir | path join $template)
|
||
if ($template_path | path exists) {
|
||
print $" ✅ ($template)"
|
||
} else {
|
||
print $" ❌ ($template) NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
}
|
||
|
||
# Check 3: Workspace init module exists
|
||
print "\n📋 Check 3: Workspace init module exists"
|
||
let init_module = ($env.PROVISIONING | path join "core/nulib/lib_provisioning/workspace/init.nu")
|
||
if ($init_module | path exists) {
|
||
print " ✅ Workspace init module found"
|
||
} else {
|
||
print " ❌ Workspace init module NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
|
||
# Check 4: Config loader has been updated
|
||
print "\n📋 Check 4: Config loader has new workspace functions"
|
||
let loader_module = ($env.PROVISIONING | path join "core/nulib/lib_provisioning/config/loader.nu")
|
||
if ($loader_module | path exists) {
|
||
let loader_content = (open $loader_module)
|
||
|
||
if ($loader_content | str contains "get-active-workspace") {
|
||
print " ✅ get-active-workspace() function exists"
|
||
} else {
|
||
print " ❌ get-active-workspace() function NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
|
||
if ($loader_content | str contains "def get-defaults-config-path") {
|
||
print " ❌ OLD get-defaults-config-path() function still exists (should be removed)"
|
||
$all_checks_passed = false
|
||
} else {
|
||
print " ✅ OLD get-defaults-config-path() function has been removed"
|
||
}
|
||
|
||
if ($loader_content | str contains "workspace/{name}/config/provisioning.yaml") {
|
||
print " ✅ New workspace hierarchy documented in code"
|
||
} else {
|
||
print " ⚠️ New workspace hierarchy comment not found"
|
||
}
|
||
|
||
if ($loader_content | str contains "from yaml") {
|
||
print " ✅ YAML format support added"
|
||
} else {
|
||
print " ❌ YAML format support NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
} else {
|
||
print " ❌ Config loader module NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
|
||
# Check 5: Documentation exists
|
||
print "\n📋 Check 5: Documentation exists"
|
||
let docs = [
|
||
($env.HOME | path join "Development/provisioning/docs/configuration/workspace-config-architecture.md")
|
||
($env.HOME | path join "Development/provisioning/docs/configuration/WORKSPACE_CONFIG_IMPLEMENTATION_SUMMARY.md")
|
||
]
|
||
|
||
for doc in $docs {
|
||
if ($doc | path exists) {
|
||
print $" ✅ ($doc | path basename)"
|
||
} else {
|
||
print $" ❌ ($doc | path basename) NOT found"
|
||
$all_checks_passed = false
|
||
}
|
||
}
|
||
|
||
# Check 6: config.defaults.toml still exists (as template)
|
||
print "\n📋 Check 6: config.defaults.toml exists as template"
|
||
let defaults_file = ($env.PROVISIONING | path join "config/config.defaults.toml")
|
||
if ($defaults_file | path exists) {
|
||
print " ✅ config.defaults.toml exists (as template only)"
|
||
print " ℹ️ This file is NEVER loaded at runtime"
|
||
} else {
|
||
print " ⚠️ config.defaults.toml not found (should exist as template reference)"
|
||
}
|
||
|
||
print "\n" + "=" * 50
|
||
if $all_checks_passed {
|
||
print "✅ All critical checks passed!"
|
||
} else {
|
||
print "❌ Some checks failed!"
|
||
print "Please review the failures above and fix the issues."
|
||
}
|
||
|
||
$all_checks_passed
|
||
}
|
||
|
||
export def main [] {
|
||
verify-workspace-architecture
|
||
}
|