Jesús Pérez 85ce530733
feat: update provisioning core CLI, libraries, and plugins
Update core components including CLI, Nushell libraries, plugins system,
and utility scripts for the provisioning system.

CLI Updates:
- Command implementations
- CLI utilities and dispatching
- Help system improvements
- Command validation

Library Updates:
- Configuration management system
- Infrastructure validation
- Extension system improvements
- Secrets management
- Workspace operations
- Cache management system

Plugin System:
- Interactive form plugin (inquire)
- KCL integration plugin
- Performance optimization plugins
- Plugin registration system

Utilities:
- Build and distribution scripts
- Installation procedures
- Testing utilities
- Development tools

Documentation:
- Library module documentation
- Extension API guides
- Plugin usage guides
- Service management documentation

All changes are backward compatible. No breaking changes.
2025-12-11 21:57:05 +00:00

131 lines
5.1 KiB
Plaintext
Executable File

#!/usr/bin/env nu
# Cache management CLI - minimal wrapper for cache operations
# Works without requiring an active workspace
def main [...args: string] {
use ../nulib/lib_provisioning/config/cache/simple-cache.nu *
# Default to "status" if no args
let args = if ($args | is-empty) { ["status"] } else { $args }
# Parse command
let command = if ($args | length) > 0 { $args | get 0 } else { "status" }
let sub_args = if ($args | length) > 1 { $args | skip 1 } else { [] }
match $command {
"status" => {
print ""
cache-status
print ""
}
"config" => {
let sub_cmd = if ($sub_args | length) > 0 { $sub_args | get 0 } else { "show" }
match $sub_cmd {
"show" => {
print ""
let config = (get-cache-config)
print "Cache Configuration:"
print $" enabled: ($config | get --optional enabled | default true)"
print $" ttl_final_config: ($config | get --optional ttl_final_config | default 300)s"
print $" ttl_kcl: ($config | get --optional ttl_kcl | default 1800)s"
print $" ttl_sops: ($config | get --optional ttl_sops | default 900)s"
print ""
}
"get" => {
if ($sub_args | length) > 1 {
let setting = $sub_args | get 1
let value = (cache-config-get $setting)
if $value != null {
print $"($setting) = ($value)"
} else {
print $"Setting not found: ($setting)"
}
} else {
print "❌ cache config get requires a setting"
print "Usage: cache config get <setting>"
exit 1
}
}
"set" => {
if ($sub_args | length) > 2 {
let setting = $sub_args | get 1
let value = ($sub_args | skip 2 | str join " ")
# Convert value to appropriate type
let converted_value = (
if $value == "1" or $value == "yes" or $value == "on" { true }
else if $value == "0" or $value == "no" or $value == "off" { false }
else { $value }
)
cache-config-set $setting $converted_value
# Display the actual value stored
let display_value = if $converted_value == true { "true" } else if $converted_value == false { "false" } else { $value }
print $"✓ Set ($setting) = ($display_value)"
} else {
print "❌ cache config set requires setting and value"
print "Usage: cache config set <setting> <value>"
print " For boolean: use 0/no/off for false, 1/yes/on for true"
exit 1
}
}
_ => {
print $"❌ Unknown cache config command: ($sub_cmd)"
print "Available: show, get, set"
exit 1
}
}
}
"clear" => {
let cache_type = if ($sub_args | length) > 0 { $sub_args | get 0 } else { "all" }
cache-clear $cache_type
print $"✓ Cleared cache: ($cache_type)"
}
"list" => {
let cache_type = if ($sub_args | length) > 0 { $sub_args | get 0 } else { "*" }
let items = (cache-list $cache_type)
if ($items | length) > 0 {
print $"Cache items \(type: ($cache_type)\):"
$items | each { |item| print $" ($item)" }
} else {
print "No cache items found"
}
}
"help" | "--help" | "-h" => {
print "
Cache Management Commands:
cache status # Show cache status and statistics
cache config show # Show cache configuration
cache config get <setting> # Get specific cache setting
cache config set <setting> <value> # Set cache setting
cache clear [type] # Clear cache (default: all)
cache list [type] # List cached items (default: all)
cache help # Show this help message
Available settings (for get/set):
enabled - Cache enabled (true/false)
ttl_final_config - TTL for final config (seconds)
ttl_kcl - TTL for KCL compilation (seconds)
ttl_sops - TTL for SOPS decryption (seconds)
Examples:
cache status
cache config get ttl_final_config
cache config set ttl_final_config 600
cache config set enabled false
cache clear kcl
cache list
"
}
_ => {
print $"❌ Unknown command: ($command)"
print "Use 'cache help' for available commands"
exit 1
}
}
}