42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
#!/usr/bin/env nu
|
|
# reload.nu - Handle ecosystem.reflection.nushell.reload events
|
|
# Reloads configuration and clears caches
|
|
|
|
export def "handle" [payload: record]: nothing -> nothing {
|
|
let reason = ($payload.reason? | default "explicit request")
|
|
let project = ($payload.project? | default ($env.ONTOREF_PROJECT_ROOT? | default $env.ONTOREF_ROOT))
|
|
|
|
let cyan = (ansi cyan)
|
|
let reset = (ansi reset)
|
|
print $" $cyan[reload]$reset Reloading configuration (reason: $reason)"
|
|
|
|
# Clear all environment caches
|
|
$env.NATS_AVAILABLE = ""
|
|
|
|
# Validate config syntax
|
|
if ($project | path exists) and ($project | is-dir) {
|
|
let config_path = $project + "/.ontoref/config.ncl"
|
|
if ($config_path | path exists) {
|
|
let gray = (ansi dark_gray)
|
|
print $" $grayConfig path: ($config_path)$reset"
|
|
|
|
let validate_result = (do {
|
|
env NICKEL_IMPORT_PATH=$project
|
|
^nickel typecheck $config_path
|
|
} | complete)
|
|
|
|
if $validate_result.exit_code == 0 {
|
|
let green = (ansi green)
|
|
print $" $green✓$reset Configuration is valid"
|
|
} else {
|
|
let err = ($validate_result.stderr? | default "syntax error")
|
|
error make { msg: $"Configuration validation failed: $err" }
|
|
}
|
|
}
|
|
}
|
|
|
|
let green = (ansi green)
|
|
print $" $green✓$reset Configuration cache cleared"
|
|
print $" $grayNote: Env changes apply to current shell only. Next command will reload.$reset"
|
|
}
|