#!/bin/bash

# Define the configuration file path
FILE="/etc/hosts"
TMP_FILE="/tmp/hosts.$$"  # Use PID to make temp file unique

if [ ! -f "$FILE" ]; then
    echo "File not found: $FILE"
    exit 1
fi

# Variables to identify the distraction remover section
START_LINE=$(grep -n '^# Distraction removers' "$FILE" | cut -d: -f1)
END_LINE=$(grep -n '^# End of distraction removers' "$FILE" | cut -d: -f1)

if [ -n "$START_LINE" ] && [ -n "$END_LINE" ]; then
    # Calculate lines for sed
    START=$((START_LINE + 1))
    END=$((END_LINE - 1))

    # If the first line of the distraction section is not commented, comment them
    if ! sed -n "${START}p" "$FILE" | grep -q '^#'; then
        if [ "$1" = 'g' ]; then
            echo "true"
            exit 0
        fi
        # Copy to temp file, edit, then copy back
        cp "$FILE" "$TMP_FILE"
        sed -i "${START},${END}s/^/#/" "$TMP_FILE"
        # Use sudo to copy back if needed, or direct copy if run as root
        if [ "$(id -u)" -eq 0 ]; then
            cp "$TMP_FILE" "$FILE"
            echo "Commented out distraction removers in $FILE."
        else
            cp "$TMP_FILE" "$FILE"
            echo "Commented out distraction removers in $FILE."
        fi
        rm -f "$TMP_FILE"
    else
        if [ "$1" = 'g' ]; then
            echo "false"
            exit 0
        fi
        # Uncomment the section
        cp "$FILE" "$TMP_FILE"
        sed -i "${START},${END}s/^#//" "$TMP_FILE"
        if [ "$(id -u)" -eq 0 ]; then
            cp "$TMP_FILE" "$FILE"
            echo "Uncommented distraction removers in $FILE."
        else
            cp "$TMP_FILE" "$FILE"
            echo "Uncommented distraction removers in $FILE."
        fi
        rm -f "$TMP_FILE"
    fi
else
    echo "Distraction removers section not found in $FILE."
    exit 1
fi

systemd-resolve --flush-cache  || notify-send "System Resolve" "Error flushing cache. Are you allowed to run the command?"
