gistfile1.txt
· 3.2 KiB · Text
Sin formato
#!/usr/bin/env bash
# ui/activity.module.sh — rendering for wgctl activity
# ui::activity::peer_row <name_pad> <rx_pad> <tx_pad> <drops> <drop_word> <w_drops>
function ui::activity::peer_row() {
local name_pad="${1:-}" rx_pad="${2:-}" tx_pad="${3:-}" \
drops="${4:-0}" drop_word="${5:-drops}" w_drops="${6:-1}"
printf " \033[1m%s\033[0m \033[2m↓\033[0m%s \033[2m↑\033[0m%s %${w_drops}s %s\n" \
"$name_pad" "$rx_pad" "$tx_pad" "$drops" "$drop_word"
}
# ui::activity::service_row <dest_display> <drop_count> <drop_word> <drops_col> <w_drops>
function ui::activity::service_row() {
local dest_display="${1:-}" drop_count="${2:-0}" drop_word="${3:-drops}" \
drops_col="${4:-30}" w_count="${5:-1}"
local arrow_prefix=" → "
local prefix_bytes=${#arrow_prefix}
local prefix_len=$(( prefix_bytes + ${#dest_display} ))
local pad_n=$(( drops_col - prefix_len ))
[[ $pad_n -lt 1 ]] && pad_n=1
printf " \033[0;31m→ %s%*s %${w_count}s %s\033[0m\n" \
"$dest_display" "$pad_n" "" "$drop_count" "$drop_word"
}
# Table versions (kept for future display config)
function ui::activity::header_table() {
printf "\n %-24s %-14s %-14s %s\n" "PEER" "↓ RX" "↑ TX" "DROPS"
printf " %s\n" "$(printf '─%.0s' {1..65})"
}
function ui::activity::peer_row_table() {
local name="${1:-}" rx_fmt="${2:-}" tx_fmt="${3:-}" \
drops="${4:-0}" drop_word="${5:-drops}"
printf " %-24s %-14s %-14s %s %s\n" \
"$name" "↓$rx_fmt" "↑$tx_fmt" "$drops" "$drop_word"
}
function ui::activity::service_row_table() {
local dest_display="${1:-}" drop_count="${2:-0}" drop_word="${3:-drops}"
printf " → %-30s %s %s\n" "$dest_display" "$drop_count" "$drop_word"
}
function ui::activity::accept_row() {
local name_pad="${1:-}" bytes_in="${2:-}" bytes_out="${3:-}" \
conns="${4:-0}" w_count="${5:-4}"
local conn_word="conns"
[[ "$conns" -eq 1 ]] && conn_word="conn"
local spaces
spaces=$(printf '%*s' "${#name_pad}" '')
printf " \033[0;32m%s ↓%-10s ↑%-10s %${w_count}s %s\033[0m\n" \
"$spaces" "$bytes_in" "$bytes_out" "$conns" "$conn_word"
}
function ui::activity::accept_dest_row() {
local dest="${1:-}" bytes_orig="${2:-0}" bytes_reply="${3:-0}" \
count="${4:-0}" drops_col="${5:-40}" w_count="${6:-4}"
local conn_word="conns"
[[ "$count" -eq 1 ]] && conn_word="conn"
local arrow_prefix=" → "
local prefix_bytes=${#arrow_prefix}
local prefix_len=$(( prefix_bytes + ${#dest} ))
local pad_n=$(( drops_col - prefix_len ))
[[ $pad_n -lt 1 ]] && pad_n=1
# Only show bytes if non-zero
local bytes_display=""
if [[ "$bytes_orig" -gt 0 || "$bytes_reply" -gt 0 ]]; then
local bytes_display=" "
[[ "$bytes_orig" -gt 0 ]] && bytes_display+="↓$(fmt::bytes "$bytes_orig") "
[[ "$bytes_reply" -gt 0 ]] && bytes_display+="↑$(fmt::bytes "$bytes_reply")"
bytes_display="${bytes_display% }" # trim trailing space
fi
printf " \033[0;32m→\033[0m \033[0;32m%b" "$dest"
printf "%*s %${w_count}s %-5s%s\033[0m\n" "$pad_n" "" "$count" "$conn_word" "$bytes_display"
# printf " \033[0;32m→\033[0m \033[0;32m%s%*s %${w_count}s %-5s%s\033[0m\n" \
# "$dest" "$pad_n" "" "$count" "$conn_word" "$bytes_display"
}
| 1 | #!/usr/bin/env bash |
| 2 | # ui/activity.module.sh — rendering for wgctl activity |
| 3 | |
| 4 | # ui::activity::peer_row <name_pad> <rx_pad> <tx_pad> <drops> <drop_word> <w_drops> |
| 5 | function ui::activity::peer_row() { |
| 6 | local name_pad="${1:-}" rx_pad="${2:-}" tx_pad="${3:-}" \ |
| 7 | drops="${4:-0}" drop_word="${5:-drops}" w_drops="${6:-1}" |
| 8 | |
| 9 | printf " \033[1m%s\033[0m \033[2m↓\033[0m%s \033[2m↑\033[0m%s %${w_drops}s %s\n" \ |
| 10 | "$name_pad" "$rx_pad" "$tx_pad" "$drops" "$drop_word" |
| 11 | } |
| 12 | |
| 13 | # ui::activity::service_row <dest_display> <drop_count> <drop_word> <drops_col> <w_drops> |
| 14 | function ui::activity::service_row() { |
| 15 | local dest_display="${1:-}" drop_count="${2:-0}" drop_word="${3:-drops}" \ |
| 16 | drops_col="${4:-30}" w_count="${5:-1}" |
| 17 | |
| 18 | local arrow_prefix=" → " |
| 19 | local prefix_bytes=${#arrow_prefix} |
| 20 | local prefix_len=$(( prefix_bytes + ${#dest_display} )) |
| 21 | local pad_n=$(( drops_col - prefix_len )) |
| 22 | [[ $pad_n -lt 1 ]] && pad_n=1 |
| 23 | |
| 24 | printf " \033[0;31m→ %s%*s %${w_count}s %s\033[0m\n" \ |
| 25 | "$dest_display" "$pad_n" "" "$drop_count" "$drop_word" |
| 26 | } |
| 27 | |
| 28 | # Table versions (kept for future display config) |
| 29 | function ui::activity::header_table() { |
| 30 | printf "\n %-24s %-14s %-14s %s\n" "PEER" "↓ RX" "↑ TX" "DROPS" |
| 31 | printf " %s\n" "$(printf '─%.0s' {1..65})" |
| 32 | } |
| 33 | |
| 34 | function ui::activity::peer_row_table() { |
| 35 | local name="${1:-}" rx_fmt="${2:-}" tx_fmt="${3:-}" \ |
| 36 | drops="${4:-0}" drop_word="${5:-drops}" |
| 37 | printf " %-24s %-14s %-14s %s %s\n" \ |
| 38 | "$name" "↓$rx_fmt" "↑$tx_fmt" "$drops" "$drop_word" |
| 39 | } |
| 40 | |
| 41 | function ui::activity::service_row_table() { |
| 42 | local dest_display="${1:-}" drop_count="${2:-0}" drop_word="${3:-drops}" |
| 43 | printf " → %-30s %s %s\n" "$dest_display" "$drop_count" "$drop_word" |
| 44 | } |
| 45 | |
| 46 | function ui::activity::accept_row() { |
| 47 | local name_pad="${1:-}" bytes_in="${2:-}" bytes_out="${3:-}" \ |
| 48 | conns="${4:-0}" w_count="${5:-4}" |
| 49 | |
| 50 | local conn_word="conns" |
| 51 | [[ "$conns" -eq 1 ]] && conn_word="conn" |
| 52 | |
| 53 | local spaces |
| 54 | spaces=$(printf '%*s' "${#name_pad}" '') |
| 55 | |
| 56 | printf " \033[0;32m%s ↓%-10s ↑%-10s %${w_count}s %s\033[0m\n" \ |
| 57 | "$spaces" "$bytes_in" "$bytes_out" "$conns" "$conn_word" |
| 58 | } |
| 59 | |
| 60 | |
| 61 | function ui::activity::accept_dest_row() { |
| 62 | local dest="${1:-}" bytes_orig="${2:-0}" bytes_reply="${3:-0}" \ |
| 63 | count="${4:-0}" drops_col="${5:-40}" w_count="${6:-4}" |
| 64 | |
| 65 | local conn_word="conns" |
| 66 | [[ "$count" -eq 1 ]] && conn_word="conn" |
| 67 | |
| 68 | local arrow_prefix=" → " |
| 69 | local prefix_bytes=${#arrow_prefix} |
| 70 | local prefix_len=$(( prefix_bytes + ${#dest} )) |
| 71 | local pad_n=$(( drops_col - prefix_len )) |
| 72 | [[ $pad_n -lt 1 ]] && pad_n=1 |
| 73 | |
| 74 | # Only show bytes if non-zero |
| 75 | local bytes_display="" |
| 76 | if [[ "$bytes_orig" -gt 0 || "$bytes_reply" -gt 0 ]]; then |
| 77 | local bytes_display=" " |
| 78 | [[ "$bytes_orig" -gt 0 ]] && bytes_display+="↓$(fmt::bytes "$bytes_orig") " |
| 79 | [[ "$bytes_reply" -gt 0 ]] && bytes_display+="↑$(fmt::bytes "$bytes_reply")" |
| 80 | bytes_display="${bytes_display% }" # trim trailing space |
| 81 | fi |
| 82 | |
| 83 | printf " \033[0;32m→\033[0m \033[0;32m%b" "$dest" |
| 84 | printf "%*s %${w_count}s %-5s%s\033[0m\n" "$pad_n" "" "$count" "$conn_word" "$bytes_display" |
| 85 | # printf " \033[0;32m→\033[0m \033[0;32m%s%*s %${w_count}s %-5s%s\033[0m\n" \ |
| 86 | # "$dest" "$pad_n" "" "$count" "$conn_word" "$bytes_display" |
| 87 | } |