Ostatnio aktywny 1 month ago

nuno zrewidował ten Gist 1 month ago. Przejdź do rewizji

1 file changed, 46 insertions

gistfile1.txt(stworzono plik)

@@ -0,0 +1,46 @@
1 + cmd_dir="${WGCTL_DIR}/commands/${cmd}"
2 +
3 + local subcmd_file="${cmd_dir}/${subcmd}.sh"
4 + log::debug "looking for: $subcmd_file exists=$([ -f "$subcmd_file" ] && echo yes || echo no)"
5 + [[ ! -f "$subcmd_file" ]] && return 1
6 +
7 + _CURRENT_LOADING_CMD="${cmd}::${subcmd}"
8 + _CURRENT_COMMAND="${cmd}::${subcmd}"
9 + source "$subcmd_file"
10 +
11 + log::debug "sourced: $subcmd_file exit=$?"
12 + log::debug "on_load_fn=$on_load_fn exists=$(declare -f "$on_load_fn" &>/dev/null && echo yes || echo no)"
13 +
14 + local fn_subcmd="${subcmd//-/_}"
15 + local on_load_fn="cmd::${cmd}::${fn_subcmd}::on_load"
16 +
17 + log::debug "load_subcmd: calling on_load, _CURRENT_COMMAND=$_CURRENT_COMMAND _CURRENT_LOADING_CMD=$_CURRENT_LOADING_CMD"
18 + if declare -f "$on_load_fn" &>/dev/null; then
19 + "$on_load_fn"
20 + fi
21 +
22 + _CURRENT_LOADING_CMD=""
23 + }
24 +
25 + function command::helpers() {
26 + local file="${1:-}"
27 + local cmd="${_CURRENT_LOADING_CMD:-}"
28 + [[ -z "$file" || -z "$cmd" ]] && return 1
29 + local cmd_name="${cmd%%::*}"
30 + local path="$(ctx::commands)/${cmd_name}/${file}"
31 + [[ -f "$path" ]] && source "$path"
32 + }
33 +
34 + # ── Run ───────────────────────────────────────────────────────────────────────
35 +
36 + # command::run_routed <cmd> <subcmd> <args...>
37 + # Runs a subcommand after routing is resolved.
38 + function command::run_routed() {
39 + local cmd="$1" subcmd="$2"
40 + shift 2
41 + local -a args=("$@")
42 +
43 + _CURRENT_COMMAND="${cmd}::${subcmd}"
44 +
45 + # Apply command defaults (only for default subcommand)
46 + local default_subcmd="${_COMMAND_DEFAULT[$cmd]:-}"
Nowsze Starsze