provisioning/taskservs/desktop/test_config.nu
2025-09-22 23:11:41 +01:00

70 lines
2.1 KiB
Plaintext

#!/usr/bin/env nu
# Test script to validate desktop taskserv configuration
def test_desktop_config [] {
print "Testing desktop taskserv configuration..."
# Check if required files exist
let required_files = [
"default/provisioning.toml",
"default/env-desktop.j2",
"default/install-desktop.sh",
"default/prepare",
"kcl/desktop.k",
"info.md"
]
mut missing_files = []
for file in $required_files {
if not ($file | path exists) {
$missing_files = ($missing_files | append $file)
}
}
if ($missing_files | length) > 0 {
print $"ERROR: Missing required files: ($missing_files)"
return false
}
# Check if install script is executable
let install_script = "default/install-desktop.sh"
if not ($install_script | path exists) {
print $"ERROR: Install script not found: ($install_script)"
return false
}
# Validate provisioning.toml format
let toml_content = (open "default/provisioning.toml")
if ($toml_content.info == "desktop") and ($toml_content.release == "1.0") {
print "✓ provisioning.toml is valid"
} else {
print "ERROR: provisioning.toml format is invalid"
return false
}
# Check KCL file syntax (basic)
let kcl_content = (open "kcl/desktop.k")
if ($kcl_content | str contains "schema DesktopServer") {
print "✓ KCL schema file is valid"
} else {
print "ERROR: KCL schema file is invalid"
return false
}
print "✓ All desktop taskserv configuration files are present and valid"
print ""
print "Desktop taskserv features:"
print "- Minimal desktop environments (XFCE, GNOME, KDE, LXDE, MATE)"
print "- VNC remote access support"
print "- Zed editor integration with configuration"
print "- Essential development and productivity applications"
print "- Multi-OS support (Ubuntu/Debian, CentOS/RHEL/Fedora)"
print "- Graphics driver configuration"
print "- Auto-login capability"
return true
}
# Run the test
test_desktop_config