70 lines
2.1 KiB
Plaintext
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
|