Utoljára aktív 1 month ago

nuno gist felülvizsgálása 1 month ago. Revízióhoz ugrás

1 file changed, 63 insertions

gistfile1.txt(fájl létrehozva)

@@ -0,0 +1,63 @@
1 + function cmd::group::show() {
2 + local name=""
3 +
4 + while [[ $# -gt 0 ]]; do
5 + case "$1" in
6 + --name) util::require_flag "--name" "${2:-}" || return 1; name="$2"; shift 2 ;;
7 + --help) cmd::group::help; return ;;
8 + *) log::error "Unknown flag: $1"; return 1 ;;
9 + esac
10 + done
11 +
12 + [[ -z "$name" ]] && log::error "Missing required flag: --name" && return 1
13 + group::require_exists "$name" || return 1
14 +
15 + local group_file
16 + group_file="$(group::path "$name")"
17 +
18 + log::section "Group: ${name}"
19 + printf "\n"
20 +
21 + local desc
22 + desc=$(json::get "$group_file" "desc")
23 + ui::row "Description" "${desc:-—}"
24 +
25 + # Load and filter peers
26 + local peers_list=()
27 + mapfile -t peers_list < <(json::get "$group_file" "peers") || true
28 + local filtered=()
29 + for p in "${peers_list[@]:-}"; do
30 + [[ -n "$p" ]] && filtered+=("$p")
31 + done
32 + peers_list=("${filtered[@]:-}")
33 + local peer_count=${#peers_list[@]}
34 + [[ -z "${peers_list[0]:-}" ]] && peer_count=0
35 +
36 + # Count valid peers (data logic stays in command)
37 + local valid_count=0
38 + for p in "${peers_list[@]}"; do
39 + [[ -z "$p" ]] && continue
40 + peers::require_exists "$p" > /dev/null 2>&1 && (( valid_count++ )) || true
41 + done
42 + local peer_word="peers"
43 + [[ "$valid_count" -eq 1 ]] && peer_word="peer"
44 + ui::row "Peers" "${valid_count} ${peer_word}"
45 + printf "\n"
46 +
47 + if [[ "$peer_count" -gt 0 ]]; then
48 + # Measure widths (data logic stays in command)
49 + local w_name=16 w_ip=13
50 + for peer_name in "${peers_list[@]}"; do
51 + [[ -z "$peer_name" ]] && continue
52 + (( ${#peer_name} > w_name )) && w_name=${#peer_name}
53 + done
54 + (( w_name += 2 ))
55 +
56 + # Delegate rendering to ui::
57 + ui::group::show_peers peers_list "$w_name" "$w_ip"
58 + else
59 + printf " \033[2m—\033[0m\n"
60 + fi
61 +
62 + printf "\n"
63 + }
Újabb Régebbi