/etc/wireguard/wgctl/commands/list.command.sh \
  /etc/wireguard/wgctl/commands/block.command.sh \
  /etc/wireguard/wgctl/commands/unblock.command.sh \
  /etc/wireguard/wgctl/commands/inspect.command.sh 2>/dev/null
/etc/wireguard/wgctl/commands/list.command.sh:function cmd::list::help() {
/etc/wireguard/wgctl/commands/list.command.sh-  cat <<EOF
/etc/wireguard/wgctl/commands/list.command.sh-Usage: wgctl list [options]
/etc/wireguard/wgctl/commands/list.command.sh-
/etc/wireguard/wgctl/commands/list.command.sh-List all WireGuard clients.
/etc/wireguard/wgctl/commands/list.command.sh-
/etc/wireguard/wgctl/commands/list.command.sh-Options:
/etc/wireguard/wgctl/commands/list.command.sh-  --type <type>     Filter by device type
/etc/wireguard/wgctl/commands/list.command.sh-  --online          Show only connected clients
/etc/wireguard/wgctl/commands/list.command.sh-  --offline         Show only disconnected clients
/etc/wireguard/wgctl/commands/list.command.sh-  --allowed         Show only fully allowed clients
/etc/wireguard/wgctl/commands/list.command.sh-  --restricted      Show only restricted clients
/etc/wireguard/wgctl/commands/list.command.sh-  --blocked         Show only blocked clients
/etc/wireguard/wgctl/commands/list.command.sh-  --detailed        Show full detail cards for all clients
/etc/wireguard/wgctl/commands/list.command.sh-  --name <name>     Show detail card for a single client
/etc/wireguard/wgctl/commands/list.command.sh-
/etc/wireguard/wgctl/commands/list.command.sh-Examples:
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list --type phone
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list --online
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list --blocked
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list --detailed
/etc/wireguard/wgctl/commands/list.command.sh-  wgctl list --name phone-nuno
/etc/wireguard/wgctl/commands/list.command.sh-EOF
/etc/wireguard/wgctl/commands/list.command.sh-}
/etc/wireguard/wgctl/commands/list.command.sh-
/etc/wireguard/wgctl/commands/list.command.sh-# ============================================
/etc/wireguard/wgctl/commands/list.command.sh-# Status / Display helpers
/etc/wireguard/wgctl/commands/list.command.sh-# ============================================
/etc/wireguard/wgctl/commands/list.command.sh-
/etc/wireguard/wgctl/commands/list.command.sh-function cmd::list::_is_connected() {
--
/etc/wireguard/wgctl/commands/block.command.sh:function cmd::block::help() {
/etc/wireguard/wgctl/commands/block.command.sh-  cat <<EOF
/etc/wireguard/wgctl/commands/block.command.sh-Usage: wgctl block --name <name> [options]
/etc/wireguard/wgctl/commands/block.command.sh-
/etc/wireguard/wgctl/commands/block.command.sh-Block a client entirely or restrict access to specific IPs/ports/subnets.
/etc/wireguard/wgctl/commands/block.command.sh-Block rules are persisted and restored on WireGuard restart.
/etc/wireguard/wgctl/commands/block.command.sh-
/etc/wireguard/wgctl/commands/block.command.sh-Options:
/etc/wireguard/wgctl/commands/block.command.sh-  --name <name>         Client name (e.g. phone-nuno)
/etc/wireguard/wgctl/commands/block.command.sh-  --ip <ip>             Block access to specific IP (repeatable)
/etc/wireguard/wgctl/commands/block.command.sh-  --subnet <cidr>       Block access to subnet (repeatable)
/etc/wireguard/wgctl/commands/block.command.sh-  --port <ip:port:proto> Block specific port, e.g. 10.0.0.210:9000:tcp (repeatable)
/etc/wireguard/wgctl/commands/block.command.sh-
/etc/wireguard/wgctl/commands/block.command.sh-Examples:
/etc/wireguard/wgctl/commands/block.command.sh-  wgctl block --name phone-nuno
/etc/wireguard/wgctl/commands/block.command.sh-  wgctl block --name phone-nuno --ip 10.0.0.210
/etc/wireguard/wgctl/commands/block.command.sh-  wgctl block --name phone-nuno --subnet 10.0.0.0/24
/etc/wireguard/wgctl/commands/block.command.sh-  wgctl block --name phone-nuno --port 10.0.0.210:9000:tcp
/etc/wireguard/wgctl/commands/block.command.sh-  wgctl ban --name phone-nuno --ip 10.0.0.100 --ip 10.0.0.200
/etc/wireguard/wgctl/commands/block.command.sh-EOF
/etc/wireguard/wgctl/commands/block.command.sh-}
/etc/wireguard/wgctl/commands/block.command.sh-
/etc/wireguard/wgctl/commands/block.command.sh-# ============================================
/etc/wireguard/wgctl/commands/block.command.sh-# Block Run
/etc/wireguard/wgctl/commands/block.command.sh-# ============================================
/etc/wireguard/wgctl/commands/block.command.sh-
/etc/wireguard/wgctl/commands/block.command.sh-function cmd::block::run() {
/etc/wireguard/wgctl/commands/block.command.sh-  local name=""
/etc/wireguard/wgctl/commands/block.command.sh-  local type=""
/etc/wireguard/wgctl/commands/block.command.sh-  local ips=()
/etc/wireguard/wgctl/commands/block.command.sh-  local subnets=()
--
/etc/wireguard/wgctl/commands/unblock.command.sh:function cmd::unblock::help() {
/etc/wireguard/wgctl/commands/unblock.command.sh-  cat <<EOF
/etc/wireguard/wgctl/commands/unblock.command.sh-Usage: wgctl unblock --name <name> [options]
/etc/wireguard/wgctl/commands/unblock.command.sh-
/etc/wireguard/wgctl/commands/unblock.command.sh-Remove block rules for a client.
/etc/wireguard/wgctl/commands/unblock.command.sh-
/etc/wireguard/wgctl/commands/unblock.command.sh-Options:
/etc/wireguard/wgctl/commands/unblock.command.sh-  --name <name>         Client name (e.g. phone-nuno)
/etc/wireguard/wgctl/commands/unblock.command.sh-  --ip <ip>             Unblock specific IP (repeatable)
/etc/wireguard/wgctl/commands/unblock.command.sh-  --subnet <cidr>       Unblock specific subnet (repeatable)
/etc/wireguard/wgctl/commands/unblock.command.sh-  --port <ip:port:proto> Unblock specific port (repeatable)
/etc/wireguard/wgctl/commands/unblock.command.sh-  --all                 Remove all block rules for this client
/etc/wireguard/wgctl/commands/unblock.command.sh-
/etc/wireguard/wgctl/commands/unblock.command.sh-Examples:
/etc/wireguard/wgctl/commands/unblock.command.sh-  wgctl unblock --name phone-nuno --all
/etc/wireguard/wgctl/commands/unblock.command.sh-  wgctl unblock --name phone-nuno --ip 10.0.0.210
/etc/wireguard/wgctl/commands/unblock.command.sh-  wgctl unban --name phone-nuno --all
/etc/wireguard/wgctl/commands/unblock.command.sh-EOF
/etc/wireguard/wgctl/commands/unblock.command.sh-}
/etc/wireguard/wgctl/commands/unblock.command.sh-
/etc/wireguard/wgctl/commands/unblock.command.sh-# ============================================
/etc/wireguard/wgctl/commands/unblock.command.sh-# Unblock Run
/etc/wireguard/wgctl/commands/unblock.command.sh-# ============================================
/etc/wireguard/wgctl/commands/unblock.command.sh-
/etc/wireguard/wgctl/commands/unblock.command.sh-function cmd::unblock::run() {
/etc/wireguard/wgctl/commands/unblock.command.sh-  local name=""
/etc/wireguard/wgctl/commands/unblock.command.sh-  local type=""
/etc/wireguard/wgctl/commands/unblock.command.sh-  local ips=()
/etc/wireguard/wgctl/commands/unblock.command.sh-  local subnets=()
/etc/wireguard/wgctl/commands/unblock.command.sh-  local ports=()
/etc/wireguard/wgctl/commands/unblock.command.sh-  local all=false
--
/etc/wireguard/wgctl/commands/inspect.command.sh:function cmd::inspect::help() {
/etc/wireguard/wgctl/commands/inspect.command.sh-  cat <<EOF
/etc/wireguard/wgctl/commands/inspect.command.sh-Usage: wgctl inspect --name <name> [--type <type>]
/etc/wireguard/wgctl/commands/inspect.command.sh-       wgctl inspect <full-name>
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-Show detailed information for a single client.
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-Options:
/etc/wireguard/wgctl/commands/inspect.command.sh-  --name <name>     Client name
/etc/wireguard/wgctl/commands/inspect.command.sh-  --type <type>     Device type (optional, combines with --name)
/etc/wireguard/wgctl/commands/inspect.command.sh-  --config          Show raw client config
/etc/wireguard/wgctl/commands/inspect.command.sh-  --qr              Show QR code
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-Examples:
/etc/wireguard/wgctl/commands/inspect.command.sh-  wgctl inspect --name phone-nuno
/etc/wireguard/wgctl/commands/inspect.command.sh-  wgctl inspect --name nuno --type phone
/etc/wireguard/wgctl/commands/inspect.command.sh-  wgctl inspect --name phone-nuno --config
/etc/wireguard/wgctl/commands/inspect.command.sh-  wgctl inspect --name phone-nuno --qr
/etc/wireguard/wgctl/commands/inspect.command.sh-EOF
/etc/wireguard/wgctl/commands/inspect.command.sh-}
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-# ============================================
/etc/wireguard/wgctl/commands/inspect.command.sh-# Private helpers
/etc/wireguard/wgctl/commands/inspect.command.sh-# ============================================
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-function cmd::inspect::_section() {
/etc/wireguard/wgctl/commands/inspect.command.sh-  local title="$1"
/etc/wireguard/wgctl/commands/inspect.command.sh-  printf "\n  \033[0;37m── %s ──────────────────────────────────\033[0m\n" "$title"
/etc/wireguard/wgctl/commands/inspect.command.sh-}
/etc/wireguard/wgctl/commands/inspect.command.sh-
/etc/wireguard/wgctl/commands/inspect.command.sh-function cmd::inspect::_row() {