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.
116 lines
3.0 KiB
Plaintext
Executable File
116 lines
3.0 KiB
Plaintext
Executable File
#!/usr/bin/env nu
|
||
# Provisioning Completer - Infrastructure Declaration Completion
|
||
|
||
use lib_provisioning *
|
||
|
||
def main [
|
||
path?: string # Project path
|
||
--out (-o): string = "text" # Output format: text, json, yaml
|
||
--check (-c) # Check mode (report only, no changes)
|
||
--pretty # Pretty-print JSON/YAML output
|
||
--debug (-x) # Enable debug output
|
||
] {
|
||
let project_path = ($path | default ".")
|
||
|
||
# Validate path exists
|
||
if not ($project_path | path exists) {
|
||
print -e $"❌ Path not found: ($project_path)"
|
||
return
|
||
}
|
||
|
||
# Get detector binary
|
||
let detector_bin = (detect-binary-path)
|
||
|
||
if not ($detector_bin | path exists) {
|
||
print -e $"❌ Detector binary not found at: ($detector_bin)"
|
||
print -e "Install: cargo build --release --bin provisioning-detector"
|
||
return
|
||
}
|
||
|
||
# Build command arguments
|
||
let detector_args = [
|
||
"complete"
|
||
$project_path
|
||
"--format" $out
|
||
]
|
||
|
||
let detector_args = (
|
||
if $check {
|
||
$detector_args | append "--check"
|
||
} else {
|
||
$detector_args
|
||
}
|
||
)
|
||
|
||
let detector_args = (
|
||
if $pretty {
|
||
$detector_args | append "--pretty"
|
||
} else {
|
||
$detector_args
|
||
}
|
||
)
|
||
|
||
# Run detector
|
||
if $debug {
|
||
print $"🔍 Running: ($detector_bin) ($detector_args | str join ' ')"
|
||
}
|
||
|
||
let result = (^$detector_bin ...$detector_args | complete)
|
||
|
||
if $result.exit_code != 0 {
|
||
print -e "❌ Completion failed"
|
||
if $debug {
|
||
print -e $"Output: ($result.stdout)"
|
||
}
|
||
return
|
||
}
|
||
|
||
print $result.stdout
|
||
|
||
if $check {
|
||
print ""
|
||
print "ℹ️ Check mode - no changes applied to your declaration"
|
||
print "Run without --check flag to apply recommended completions"
|
||
}
|
||
}
|
||
|
||
# Helper: Locate the provisioning-detector binary
|
||
def detect-binary-path [] {
|
||
let env_prov = ($env.PROVISIONING? | default "")
|
||
|
||
let possible_paths = if ($env_prov | is-not-empty) {
|
||
[
|
||
($env_prov | path join "platform" "target" "debug" "provisioning-detector")
|
||
($env_prov | path join "platform" "target" "release" "provisioning-detector")
|
||
"/usr/local/bin/provisioning-detector"
|
||
"/usr/bin/provisioning-detector"
|
||
]
|
||
} else {
|
||
[
|
||
"/Users/Akasha/project-provisioning/provisioning/platform/target/debug/provisioning-detector"
|
||
"/Users/Akasha/project-provisioning/provisioning/platform/target/release/provisioning-detector"
|
||
"/usr/local/bin/provisioning-detector"
|
||
"/usr/bin/provisioning-detector"
|
||
]
|
||
}
|
||
|
||
let existing = ($possible_paths | where { |p|
|
||
(($p | is-not-empty) and ($p | path exists))
|
||
})
|
||
|
||
if ($existing | length) > 0 {
|
||
$existing | first
|
||
} else {
|
||
if ($env_prov | is-not-empty) {
|
||
$env_prov | path join "platform" "target" "release" "provisioning-detector"
|
||
} else {
|
||
"/Users/Akasha/project-provisioning/provisioning/platform/target/release/provisioning-detector"
|
||
}
|
||
}
|
||
}
|
||
|
||
export def "main complete info" [
|
||
] {
|
||
print "Provisioning Completer - Infrastructure Declaration Completion"
|
||
}
|