#!/bin/bash

force=${2:-0}  # 0/1 --force argument
dryrun=${3:-0}  # 0/1 --dry-run argument
pending_conf=$4 # Path of the pending conf file

temp_dir=/tmp/pi-hole.bck

do_pre_regen() {
  if [ $dryrun -eq 0 ]
  then
	# Créer une sauvegarde des config dnsmasq de pi-hole. Que la regen-conf va sauvagement supprimer
	mkdir $temp_dir
	cp -a "/etc/dnsmasq.d/01-pihole.conf" "$temp_dir"
	test -e "/etc/dnsmasq.d/02-pihole-dhcp.conf" && cp -a "/etc/dnsmasq.d/02-pihole-dhcp.conf" "$temp_dir"
	test -e "/etc/dnsmasq.d/03-pihole-wildcard.conf" && cp -a "/etc/dnsmasq.d/03-pihole-wildcard.conf" "$temp_dir"
  fi
}

do_post_regen() {
  # Restaure la config dnsmasq de pi-hole
  cp -a "$temp_dir/01-pihole.conf"	"/etc/dnsmasq.d/"
  test -e "$temp_dir/02-pihole-dhcp.conf" && cp -a "$temp_dir/02-pihole-dhcp.conf" "/etc/dnsmasq.d/"
  test -e "$temp_dir/03-pihole-wildcard.conf" && cp -a "$temp_dir/03-pihole-wildcard.conf" "/etc/dnsmasq.d/"
  # Supprime le dossier temporaire
  test -n $temp_dir && rm -r $temp_dir

  # Commente le cache-size de la config par défaut
  sed --in-place "s/^cache-size=/#pihole# cache-size=/g" /etc/dnsmasq.conf

  # Reload dnsmasq
  systemctl reload dnsmasq
}

case "$1" in
  pre)
    do_pre_regen
    ;;
  post)
    do_post_regen
    ;;
  *)
    echo "Hook called with unknown argument \`$1'" >&2
    exit 1
    ;;
esac

exit 0
