cmd_dir="${WGCTL_DIR}/commands/${cmd}" local subcmd_file="${cmd_dir}/${subcmd}.sh" log::debug "looking for: $subcmd_file exists=$([ -f "$subcmd_file" ] && echo yes || echo no)" [[ ! -f "$subcmd_file" ]] && return 1 _CURRENT_LOADING_CMD="${cmd}::${subcmd}" _CURRENT_COMMAND="${cmd}::${subcmd}" source "$subcmd_file" log::debug "sourced: $subcmd_file exit=$?" log::debug "on_load_fn=$on_load_fn exists=$(declare -f "$on_load_fn" &>/dev/null && echo yes || echo no)" local fn_subcmd="${subcmd//-/_}" local on_load_fn="cmd::${cmd}::${fn_subcmd}::on_load" log::debug "load_subcmd: calling on_load, _CURRENT_COMMAND=$_CURRENT_COMMAND _CURRENT_LOADING_CMD=$_CURRENT_LOADING_CMD" if declare -f "$on_load_fn" &>/dev/null; then "$on_load_fn" fi _CURRENT_LOADING_CMD="" } function command::helpers() { local file="${1:-}" local cmd="${_CURRENT_LOADING_CMD:-}" [[ -z "$file" || -z "$cmd" ]] && return 1 local cmd_name="${cmd%%::*}" local path="$(ctx::commands)/${cmd_name}/${file}" [[ -f "$path" ]] && source "$path" } # ── Run ─────────────────────────────────────────────────────────────────────── # command::run_routed # Runs a subcommand after routing is resolved. function command::run_routed() { local cmd="$1" subcmd="$2" shift 2 local -a args=("$@") _CURRENT_COMMAND="${cmd}::${subcmd}" # Apply command defaults (only for default subcommand) local default_subcmd="${_COMMAND_DEFAULT[$cmd]:-}"