#!/bin/bash

if [ -n "$SUDO_USER" ]; then
  source /home/$SUDO_USER/.index.sh
else
  source $HOME/.index.sh
fi

function init {
    if ! password=$(dialog --backtitle "ACESSO RESTRITO" --title "Digite a senha!" --insecure --passwordbox "" 7 30 2>&1 > /dev/tty); then
        exit
    fi

    hash0=$(echo "$password" | md5sum | awk '{print $1}')

    if [ -z "$password" ]; then
        dialog --title "ERROR" --msgbox "É necessário digitar uma senha para continuar." 6 40
        clear
    elif [ "$hash0" = "$hash1" ]; then
        check
    else
        clear
        dialog --title "ERROR" --msgbox "Senha incorreta. \nTente novamente!" 6 30
        timeout=$((timeout+1)); sleep $timeout
        init
    fi
}

hash1="fe5dfdd991450623c39efc7705e47ad5"

function check {
  VALUE0=$(dialog --ok-label "DESTRUIR?" --title "Prepare-se" --backtitle "Este Sistema sera totalmente destruido." --form "\nPOR FAVOR CONFIRME QUE VOCE ESTA DE ACORDO \nCOM OS RISCOS INERENTES A ESTA DESTRUICAO! \n\n
PODEM HAVER PERDA DE DADOS SENSIVEIS \nOU DANOS AO SISTEMA OPERACIONAL \nSE FIZER ESTA OPERAÇÃO DESNECESSSARIAMENTE.\n\nRepita no campo abaixo: \neu estou ciente dos riscos" 0 0 0 \
"." 1 1 "$VALUE1" 1 1 45 0 3>&1 1>&2 2>&3 3>&- > /dev/tty)
    case $? in
      0) : ;;
      1) return ;;
    esac
    var1=$(echo "$VALUE0" | sed -n 1p)
    if [ "$var1" = "eu estou ciente dos riscos" ]; then
      clear; echo "ESTA TUDO PRONTO! TUDO FOI DEVIDAMENTE VALIDADO."; sleep 1
      echo "5"; echo "O SERVIDOR SERÁ COMPLETAMENTE DESTRUIDO!"; sleep 1
      echo "4"; sleep 1
      echo "3"; sleep 1
      echo "2"; sleep 1
      echo "1"; echo "Que a boa sorte lhe acompanhe nesta limpeza!"
      sleep 3
      start
    else
      clear; echo ""; echo "Por favor repita a frase exatamente como pedi! Saindo..."
      exit 1
    fi
}

function start {
    # 🔴 KILLSWITCH: Trava de segurança anti-destruição acidental
    if [ ! -f /killswitch ]; then
        clear
        echo ""
        echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
        echo "🔴 KILLSWITCH NÃO ATIVADO!"
        echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
        echo ""
        echo "Este script IRÁ DESTRUIR COMPLETAMENTE o servidor atual!"
        echo "Isto não vai acontecer porque não achamos o arquivo-trava necessário."
        echo "Após criar o arquivo, execute este script novamente."
        echo ""
        echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
        echo ""
        echo "Operação cancelada por segurança. Saindo em 5 segundos..."
        sleep 5
        exit 1
    fi

    echo "🔴 KILLSWITCH ATIVADO - Iniciando destruição do servidor..."
    echo ""
    sleep 2

    echo "🔄 RESETANDO SERVIDOR PARA NOVA RESTAURAÇÃO"
    echo "==========================================="
    echo ""

    # 1. TRAVAS
    echo "1️⃣ Removendo travas..."
    sudo rm -f /srv/restored*.lock
    sudo rm -f /srv/lockfile
    echo "   ✓ Travas removidas"

    # 2. CONTAINERS
    echo ""
    echo "2️⃣ Parando e removendo containers..."
    docker stop $(docker ps -aq) 2>/dev/null
    docker rm $(docker ps -aq) 2>/dev/null
    echo "   ✓ Containers removidos"

    # 3. DADOS /SRV
    echo ""
    echo "3️⃣ Limpando dados /srv..."
    sudo rm -rf /srv/containers/*
    sudo rm -rf /srv/scripts/*
    sudo rm -f /srv/system.yaml
    sudo rm -f /srv/containers.yaml
    echo "   ✓ /srv limpo"

    # 4. REDE DOCKER
    echo ""
    echo "4️⃣ Removendo rede Docker macvlan..."
    docker network rm macvlan 2>/dev/null && echo "   ✓ Rede removida" || echo "   ⚠️  Rede não existia"

    # 5. VMS
    echo ""
    echo "5️⃣ Removendo VMs..."
    sudo virsh destroy pfsense 2>/dev/null
    sudo virsh undefine pfsense 2>/dev/null
    sudo rm -f /var/lib/libvirt/images/pfsense*
    sudo rm -f /var/lib/libvirt/qemu/pfsense.xml
    echo "   ✓ VMs removidas"

    # 6. HOSTNAME
    echo ""
    echo "6️⃣ Resetando hostname..."
    sudo hostnamectl set-hostname ubuntu-server
    echo "   ✓ Hostname: $(hostname)"

    # 7. MACHINE-ID
    echo ""
    echo "7️⃣ Gerando novo machine-id..."
    sudo rm -f /etc/machine-id
    sudo rm -f /var/lib/dbus/machine-id
    sudo systemd-machine-id-setup
    echo "   ✓ Novo machine-id: $(cat /etc/machine-id)"

    # 8. CRONTAB
    echo ""
    echo "8️⃣ Limpando crontab..."
    sudo crontab -r 2>/dev/null && echo "   ✓ Crontab limpo" || echo "   ⚠️  Crontab já estava vazio"

    # 9. DESMONTAR BACKUP
    echo ""
    echo "9️⃣ Desmontando backup antigo..."
    sudo umount /mnt/bkpsys 2>/dev/null && echo "   ✓ Backup desmontado" || echo "   ⚠️  Backup não estava montado"

    # 10. LOGS ANTIGOS
    echo ""
    echo "🔟 Limpando logs de restore anteriores..."
    sudo rm -f /var/log/restore-total-*.log 2>/dev/null && echo "   ✓ Logs removidos" || echo "   ⚠️  Sem logs antigos"

    # 11. DESATIVAR KILLSWITCH
    echo ""
    echo "1️⃣1️⃣ Desativando KILLSWITCH..."
    sudo rm -f /killswitch
    echo "   ✓ /killswitch removido (exigirá reativação para próximo reset)"

    echo ""
    echo "=============================================="
    echo "✅ SERVIDOR TOTALMENTE RESETADO!"
    echo "=============================================="
    echo ""
    sleep 3
    sudo reboot
}

hash1="7c6126d9cc35fccb0c8a3a42147ea85f"

init
exit 0
