gistfile1.txt
· 1.2 KiB · Text
Raw
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
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 blocks 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" | wc -l)
n_block_ips=$(json::get "$rule_file" "block_ips" | wc -l)
n_block_ports=$(json::get "$rule_file" "block_ports" | wc -l)
# 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 . || echo 0)
printf " %-20s %-35s %-8s %-8s %s\n" \
"$name" \
"${desc:-—}" \
"${n_allows}" \
"${blocks}" \
"${peer_count} peers"
done
printf "\n"
}
| 1 | function cmd::rule::list() { |
| 2 | local rules_dir |
| 3 | rules_dir="$(ctx::rules)" |
| 4 | |
| 5 | local rules=("${rules_dir}"/*.rule) |
| 6 | if [[ ! -f "${rules[0]}" ]]; then |
| 7 | log::wg "No rules configured" |
| 8 | return 0 |
| 9 | fi |
| 10 | |
| 11 | log::section "Firewall Rules" |
| 12 | |
| 13 | printf "\n %-20s %-35s %-8s %-8s %s\n" \ |
| 14 | "NAME" "DESCRIPTION" "ALLOWS" "BLOCKS" "PEERS" |
| 15 | printf " %s\n" "$(printf '─%.0s' {1..80})" |
| 16 | |
| 17 | for rule_file in "${rules_dir}"/*.rule; do |
| 18 | [[ -f "$rule_file" ]] || continue |
| 19 | |
| 20 | local name desc blocks peer_count |
| 21 | name=$(json::get "$rule_file" "name") |
| 22 | desc=$(json::get "$rule_file" "desc") |
| 23 | |
| 24 | local n_allows n_block_ips n_block_ports blocks |
| 25 | n_allows=$(json::get "$rule_file" "allow_ips" | wc -l) |
| 26 | n_block_ips=$(json::get "$rule_file" "block_ips" | wc -l) |
| 27 | n_block_ports=$(json::get "$rule_file" "block_ports" | wc -l) |
| 28 | # wc -l returns 0 for empty, so this is safe |
| 29 | blocks=$(( n_block_ips + n_block_ports )) |
| 30 | |
| 31 | # Count assigned peers |
| 32 | peer_count=$(peers::with_rule "$name" | grep -c . || echo 0) |
| 33 | |
| 34 | printf " %-20s %-35s %-8s %-8s %s\n" \ |
| 35 | "$name" \ |
| 36 | "${desc:-—}" \ |
| 37 | "${n_allows}" \ |
| 38 | "${blocks}" \ |
| 39 | "${peer_count} peers" |
| 40 | done |
| 41 | |
| 42 | printf "\n" |
| 43 | } |