prvng_core/nulib/provisioning setup
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

110 lines
4.2 KiB
Plaintext
Executable File

#!/usr/bin/env nu
# Router for New Setup System
# This file routes setup commands to the main provisioning CLI
# Author: JesusPerezLorenzo
# Release: 1.0.5
# Date: 2025-12-09
# Main entry point - delegate to main provisioning CLI
def main [
...args: string # Command arguments
--debug (-x) # Debug mode
--check (-c) # Dry-run mode
--yes (-y) # Auto-confirm
--verbose (-v) # Verbose output
--interactive # Interactive mode
--notitles # Suppress titles
--out: string = "" # Output format
--helpinfo (-h) # Show help
]: nothing -> nothing {
# Build command-line arguments to pass to main provisioning CLI
let cli_args = [
"setup",
...(if ($args | length) > 0 { $args } else { [] }),
...(if $check { ["--check"] } else { [] }),
...(if $verbose { ["--verbose"] } else { [] }),
...(if $yes { ["--yes"] } else { [] }),
...(if $interactive { ["--interactive"] } else { [] }),
...(if $debug { ["--debug"] } else { [] }),
...(if ($out | is-not-empty) { [$"--out=$out"] } else { [] }),
...(if $helpinfo { ["--help"] } else { [] })
]
# Determine provisioning command location
let provisioning_cmd = (
if ($env.PROVISIONING? | is-not-empty) {
$"($env.PROVISIONING)/core/cli/provisioning"
} else if ($env.PROVISIONING_NAME? | is-not-empty) {
$env.PROVISIONING_NAME
} else {
"provisioning"
}
)
# Delegate to main provisioning CLI
^$provisioning_cmd ...$cli_args
}
# Display help for setup
def show-setup-help [] {
print ""
print "╔═══════════════════════════════════════════════════════════════╗"
print "║ PROVISIONING SETUP SYSTEM ║"
print "║ ║"
print "║ Complete system initialization and configuration management ║"
print "╚═══════════════════════════════════════════════════════════════╝"
print ""
print "USAGE:"
print " provisioning setup <command> [OPTIONS]"
print ""
print "COMMANDS:"
print " system Complete system setup (interactive, defaults, minimal)"
print " workspace Create and configure workspaces"
print " provider Setup infrastructure providers (UpCloud, AWS, Hetzner)"
print " platform Configure platform services (Orchestrator, Control-Center, KMS)"
print " update Update existing configuration"
print " wizard Interactive setup wizard"
print " validate Validate current configuration"
print " detect Detect system capabilities"
print " migrate Migrate existing configurations"
print " status Show setup status"
print " help Show this help message"
print ""
print "COMMON EXAMPLES:"
print " # Interactive setup (recommended)"
print " provisioning setup system --interactive"
print ""
print " # Setup with defaults"
print " provisioning setup system --defaults"
print ""
print " # Check system capabilities"
print " provisioning setup detect --verbose"
print ""
print " # Validate configuration"
print " provisioning setup validate"
print ""
print " # Migrate existing workspace"
print " provisioning setup migrate --auto"
print ""
print "OPTIONS:"
print " --check, -c Dry-run without making changes"
print " --verbose, -v Show detailed output"
print " --yes, -y Auto-confirm prompts"
print " --interactive Use interactive mode"
print ""
print "CONFIGURATION LOCATIONS:"
print " macOS: ~/Library/Application Support/provisioning/"
print " Linux: ~/.config/provisioning/"
print " Windows: %APPDATA%/provisioning/"
print ""
print "For help on specific commands:"
print " provisioning setup <command> --help"
print ""
}