#!/usr/bin/env bash set -Eeuo pipefail IFS=$'\n\t' BASE="/home/dandanil/public_html/tempt6" DOMAINS=("area369.org" "kabin88.org" "kage999.net" "kurama88.org" "sekai88.org" "bandarjudi303.org" "mpo9889.net" "ligabet787.com" "3dtoto.net" "leci133.com" "pokermantul99.org" "monster4d.net" "mpo323.org" "maxx4d.net" "nuklir88.org" "bdpkv.net" "juara124.org" "kunti4d.org" "ug700.org" "kudasakti186.net" "maxxqq.com" "macanwin88.com" "sawer188.org" "joshtoto.com" "matadewaqq.com" "princes99.net" "hau888.com" "mahjong988.net" "baritoslot.org" "juarabetting.org") trap 'echo "❌ ERROR (baris $LINENO). STOP. Script dihentikan."; exit 1' ERR # ========== # PHASE 1: VALIDASI + KUMPULKAN TARGET (BELUM HAPUS APA2) # ========== targets=() real_base="$(realpath -m "$BASE")" [[ -d "$real_base" ]] || { echo "❌ BASE tidak ada: $real_base"; exit 1; } for domain in "${DOMAINS[@]}"; do [[ "$domain" =~ ^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ ]] || { echo "❌ Domain tidak valid: $domain"; exit 1; } DIR="${BASE}/${domain}" echo "🔍 Checking folder: $DIR" [[ -d "$DIR" ]] || { echo "❌ Folder tidak ditemukan: $DIR"; exit 1; } real_dir="$(realpath -m "$DIR")" [[ "$real_dir" == "$real_base/"* ]] || { echo "❌ Unsafe DIR: $real_dir"; exit 1; } shopt -s nullglob dotglob for file in "$DIR"/*; do base="$(basename -- "$file")" if [[ "$base" == ".htaccess" || "$base" == "cgi-bin" || "$base" == ".well-known" ]]; then continue fi real_file="$(realpath -m "$file")" [[ "$real_file" == "$real_dir/"* ]] || { echo "❌ Unsafe target: $real_file"; exit 1; } targets+=("$file") done done echo "✅ Phase 1 OK. Total target yang akan dihapus: ${#targets[@]}" if [[ "${#targets[@]}" -eq 0 ]]; then echo "ℹ Tidak ada yang perlu dihapus." exit 0 fi echo echo "📌 Contoh target (maks 10 item pertama):" i=0 for t in "${targets[@]}"; do echo " - $t" ((++i)) # FIX: tidak bikin set -e error [[ $i -ge 10 ]] && break done [[ ${#targets[@]} -gt 10 ]] && echo " ...dan $(( ${#targets[@]} - 10 )) item lainnya" echo # ========== # KONFIRMASI (case-insensitive) # ========== echo "Ketik YES untuk lanjut hapus:" read -r confirm confirm="${confirm^^}" [[ "$confirm" == "YES" ]] || { echo "⛔ Dibatalkan. Tidak ada yang dihapus."; exit 0; } # ========== # PHASE 2: EKSEKUSI HAPUS # ========== for t in "${targets[@]}"; do if [[ -f "$t" ]]; then echo "🗑️ Hapus file: $t" rm -f -- "$t" elif [[ -d "$t" ]]; then echo "🗑️ Hapus folder: $t" rm -rf -- "$t" else echo "⚠ Skip (sudah tidak ada): $t" fi done echo "✅ Selesai."