# Script para controlar serviços via Interface Web
# Divisão: Addons (Manual/init.d) e Sistema (jobcontrol)

ACTION=$1
SERVICE=$2

# --- VALIDAÇÃO DE PARÂMETROS ---
if [ -z "$ACTION" ] || [ -z "$SERVICE" ]; then
    echo "Erro: Parametros insuficientes."
    echo "Uso: $0 <action> <service>"
    exit 1
fi

case "$SERVICE" in
    # --- GRUPO 1: ADDONS (Via /etc/init.d/) ---
    # Fail2Ban incluído aqui conforme solicitado
    zabbix-proxy|zabbix-agent|docker|ntopng|suricata|unifi|fail2ban|syslog-ng)
        /etc/init.d/"$SERVICE" "$ACTION"
        ;;

    # --- TRATAMENTO ESPECIAL: NXFILTER (Apenas Restart via Binário) ---
    nxfilter)
        if [ "$ACTION" == "restart" ]; then
            /usr/local/bin/nxfilter --restart
        else
            echo "Acao $ACTION nao permitida para NXFilter (Apenas restart)."
            exit 1
        fi
        ;;
     # --- TRATAMENTO ESPECIAL: WIREGUARD SERVER (apenas restart) ---
    wireguard)
        if [ "$ACTION" = "restart" ]; then
            /usr/local/bin/wireguard --server
        else
            echo "Acao $ACTION nao permitida para WireGuard Server (Apenas restart)."
            exit 1
        fi
        ;;

    # --- GRUPO 2: SISTEMA (Via /sbin/jobcontrol) ---
    *)
        JOB_NAME="$SERVICE"

        case "$SERVICE" in
            sshd)         JOB_NAME="ssh" ;;
            ntpd)         JOB_NAME="ntp" ;;
            dhcp-server)  JOB_NAME="dhcp" ;;
            openvpn)      JOB_NAME="openvpnjob" ;;
            dnsmasq)      JOB_NAME="dnsmasq" ;;
            fcron)        JOB_NAME="fcron" ;;
            emi)          JOB_NAME="emi" ;;
            httpd)        JOB_NAME="httpd" ;;
            jobsengine)   JOB_NAME="jobsengine" ;;
            samba)        JOB_NAME="samba" ;;
            winbind)      JOB_NAME="winbind" ;;
            squid)        JOB_NAME="squid" ;;
            ipsec)        JOB_NAME="ipsec" ;;
            clamd)        JOB_NAME="clamav" ;;
        esac

        /sbin/jobcontrol "$ACTION" "$JOB_NAME"
        ;;
esac
