#!/bin/bash
set -e

SERVER_IP="187.127.110.182"
TARGET_HOST="siakad.politama-mjk.ac.id"
HOSTS_FILE="/etc/hosts"
BACKUP_FILE="/etc/hosts.siakad-backup"

if [ "$(id -u)" -ne 0 ]; then
  echo "Meminta izin administrator macOS..."
  exec sudo /bin/bash "$0" "$@"
fi

echo "Membuat cadangan file hosts..."
if [ ! -e "$BACKUP_FILE" ]; then
  cp "$HOSTS_FILE" "$BACKUP_FILE"
fi

TEMP_FILE="$(mktemp)"
trap 'rm -f "$TEMP_FILE"' EXIT

echo "Mengarahkan $TARGET_HOST ke $SERVER_IP..."
awk -v host="$TARGET_HOST" '
{
  keep = 1
  for (field = 1; field <= NF; field++) {
    if ($field == host) {
      keep = 0
    }
  }
  if (keep) {
    print $0
  }
}' "$HOSTS_FILE" > "$TEMP_FILE"
printf '%s\t%s # SIAKAD DNS Fix\n' "$SERVER_IP" "$TARGET_HOST" >> "$TEMP_FILE"
cat "$TEMP_FILE" > "$HOSTS_FILE"

echo "Membersihkan cache DNS macOS..."
dscacheutil -flushcache
killall -HUP mDNSResponder 2>/dev/null || true

echo
echo "Perbaikan selesai. Silakan buka kembali https://$TARGET_HOST"
echo "Cadangan file hosts: $BACKUP_FILE"