gistfile1.txt
· 1.5 KiB · Text
Bruto
cat /etc/wireguard/wgctl/commands/rule.command.sh | grep -A 50 "function cmd::rule::list"
function cmd::rule::list() {
local rules_dir
rules_dir="$(ctx::rules)"
local rules=("${rules_dir}"/*.rule)
if [[ ! -f "${rules[0]}" ]]; then
log::wg "No rules configured"
return 0
fi
local rules=("${rules_dir}"/*.rule)
echo "DEBUG: first=${rules[0]}"
echo "DEBUG: count=${#rules[@]}"
log::section "Firewall Rules"
printf "\n %-20s %-35s %-8s %-8s %s\n" \
"NAME" "DESCRIPTION" "ALLOWS" "BLOCKS" "PEERS"
printf " %s\n" "$(printf '─%.0s' {1..80})"
for rule_file in "${rules_dir}"/*.rule; do
[[ -f "$rule_file" ]] || continue
local name desc peer_count
name=$(json::get "$rule_file" "name")
desc=$(json::get "$rule_file" "desc")
local n_allows n_block_ips n_block_ports blocks
n_allows=$(json::get "$rule_file" "allow_ips" | grep -v '^$' | wc -l | tr -d ' ')
n_block_ips=$(json::get "$rule_file" "block_ips" | grep -v '^$' | wc -l | tr -d ' ')
n_block_ports=$(json::get "$rule_file" "block_ports" | grep -v '^$' | wc -l | tr -d ' ')
# wc -l returns 0 for empty, so this is safe
blocks=$(( n_block_ips + n_block_ports ))
# Count assigned peers
peer_count=$(peers::with_rule "$name" | grep -c .)
local short_desc="${desc:0:33}"
[[ ${#desc} -gt 33 ]] && short_desc="${short_desc}..."
printf " %-20s %-36s %-8s %-8s %s\n" \
"$name" \
"${short_desc:-—}" \
"${n_allows}" \
"${blocks}" \
"${peer_count} peers"
done
printf "\n"
| 1 | cat /etc/wireguard/wgctl/commands/rule.command.sh | grep -A 50 "function cmd::rule::list" |
| 2 | function cmd::rule::list() { |
| 3 | local rules_dir |
| 4 | rules_dir="$(ctx::rules)" |
| 5 | |
| 6 | local rules=("${rules_dir}"/*.rule) |
| 7 | if [[ ! -f "${rules[0]}" ]]; then |
| 8 | log::wg "No rules configured" |
| 9 | return 0 |
| 10 | fi |
| 11 | |
| 12 | local rules=("${rules_dir}"/*.rule) |
| 13 | echo "DEBUG: first=${rules[0]}" |
| 14 | echo "DEBUG: count=${#rules[@]}" |
| 15 | |
| 16 | log::section "Firewall Rules" |
| 17 | |
| 18 | printf "\n %-20s %-35s %-8s %-8s %s\n" \ |
| 19 | "NAME" "DESCRIPTION" "ALLOWS" "BLOCKS" "PEERS" |
| 20 | printf " %s\n" "$(printf '─%.0s' {1..80})" |
| 21 | |
| 22 | for rule_file in "${rules_dir}"/*.rule; do |
| 23 | [[ -f "$rule_file" ]] || continue |
| 24 | |
| 25 | local name desc peer_count |
| 26 | name=$(json::get "$rule_file" "name") |
| 27 | desc=$(json::get "$rule_file" "desc") |
| 28 | |
| 29 | local n_allows n_block_ips n_block_ports blocks |
| 30 | |
| 31 | n_allows=$(json::get "$rule_file" "allow_ips" | grep -v '^$' | wc -l | tr -d ' ') |
| 32 | n_block_ips=$(json::get "$rule_file" "block_ips" | grep -v '^$' | wc -l | tr -d ' ') |
| 33 | n_block_ports=$(json::get "$rule_file" "block_ports" | grep -v '^$' | wc -l | tr -d ' ') |
| 34 | # wc -l returns 0 for empty, so this is safe |
| 35 | |
| 36 | blocks=$(( n_block_ips + n_block_ports )) |
| 37 | |
| 38 | # Count assigned peers |
| 39 | peer_count=$(peers::with_rule "$name" | grep -c .) |
| 40 | |
| 41 | local short_desc="${desc:0:33}" |
| 42 | [[ ${#desc} -gt 33 ]] && short_desc="${short_desc}..." |
| 43 | |
| 44 | printf " %-20s %-36s %-8s %-8s %s\n" \ |
| 45 | "$name" \ |
| 46 | "${short_desc:-—}" \ |
| 47 | "${n_allows}" \ |
| 48 | "${blocks}" \ |
| 49 | "${peer_count} peers" |
| 50 | done |
| 51 | |
| 52 | printf "\n" |