#!/bin/bash
# /usr/local/bin/dhcp-clean-wrapper
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

LEASE_FILE="/var/lib/dhcp/dhcpd.leases"
TMP_FILE="/tmp/dhcp_clean.tmp"

case "$1" in
    "clean")
        # Verifica se o arquivo temporário existe (gerado pelo Perl)
        if [ -f "$TMP_FILE" ]; then
            echo "Iniciando limpeza do DHCP..."
            
            # Backup por segurança
            /bin/cp "$LEASE_FILE" "$LEASE_FILE.bak"
            
            # Para o serviço
            /etc/init.d/dhcp-server stop >/dev/null 2>&1
            
            # Sobrescreve com os dados limpos
            /bin/cp "$TMP_FILE" "$LEASE_FILE"
            
            # Inicia o serviço
            /etc/init.d/dhcp-server start >/dev/null 2>&1
            
            # Apaga o temporário para a próxima rodada
            rm -f "$TMP_FILE"
            
            echo "DHCP reiniciado com sucesso."
        else
            echo "Erro: O arquivo $TMP_FILE nao existe. A inteligencia do Perl precisa rodar antes."
            exit 1
        fi
        ;;

    "schedule")
        # $2 = semanal ou mensal | $3 = caminho do cgi
        rm -f /etc/cron.weekly/clean-dhcp /etc/cron.monthly/clean-dhcp
        
        if [ "$2" == "semanal" ]; then
            echo "#!/bin/bash" > /etc/cron.weekly/clean-dhcp
            echo "/usr/bin/perl $3 action=clean_all" >> /etc/cron.weekly/clean-dhcp
            chmod +x /etc/cron.weekly/clean-dhcp
        elif [ "$2" == "mensal" ]; then
            echo "#!/bin/bash" > /etc/cron.monthly/clean-dhcp
            echo "/usr/bin/perl $3 action=clean_all" >> /etc/cron.monthly/clean-dhcp
            chmod +x /etc/cron.monthly/clean-dhcp
        fi
        ;;

    *)
        echo "Uso: $0 {clean|schedule}"
        exit 1
        ;;
esac