#!/usr/bin/env bash

brt_listen() {
  local port="${1:-}"

  if [[ -n "$port" ]]; then
    brt_info "Checking port ${port}..."
    if command -v lsof &>/dev/null; then
      lsof -i ":${port}" -sTCP:LISTEN 2>/dev/null || brt_warn "Port ${port} is not in use"
    elif (echo >/dev/tcp/127.0.0.1/"$port") 2>/dev/null; then
      brt_ok "Port ${port} is open"
    else
      brt_warn "Port ${port} is closed"
    fi
    return
  fi

  brt_info "Listening ports:"
  if command -v lsof &>/dev/null; then
    lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null | awk 'NR==1 || /LISTEN/ {print}'
  elif command -v netstat &>/dev/null; then
    netstat -an | grep LISTEN
  else
    brt_error "lsof or netstat required"
    exit 1
  fi
}
