42 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

2026-03-13 00:21:04 +00:00
#!/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"
}