#!/bin/bash

# Ask the user whether to copy contents from /etc/skel to the Home directory
echo "Do you want to copy contents from /etc/skel to your Home directory? (Y/n)"
read -r response

# Convert the response to lowercase for case-insensitive comparison
response=$(echo "$response" | tr '[:upper:]' '[:lower:]')

# Check if the user agrees (Y or y)
if [[ "$response" == "y" || "$response" == "yes" || -z "$response" ]]; then
    # Get the current date and time to append to backup folder name
    time=$(date +%Y.%m.%d-%H.%M.%S)

    # Ensure the ~/.config directory exists, if not, create it
    if [ ! -d "$HOME/.config" ]; then
        echo "Creating .config directory in the Home directory."
        mkdir -p "$HOME/.config"
    fi

    echo
    # Notify user about the backup of .config folder
    echo "Backing up the .config folder to $HOME/.config-backup-$time"
    echo

    # Backup the current .config folder with a timestamped name
    # Using rsync for better error handling and file integrity
    rsync -a --backup --suffix=-backup-"$time" "$HOME/.config" "$HOME/.config-backup-$time"
    
    # Check if the backup was successful
    if [ $? -eq 0 ]; then
        echo "Backup completed successfully!"
    else
        echo "Error: Backup failed."
        exit 1
    fi

    echo
    # Inform the user that the .config folder will be overwritten
    echo "Overwriting the existing .config folder with files from /etc/skel."
    echo

    # Copy the contents of /etc/skel to the user's home directory
    # Using rsync to avoid overwriting files without backups
    rsync -a /etc/skel/ "$HOME"

    echo
    echo "Task Completed!"
    echo

else
    # User chose not to make any changes
    echo
    echo "No changes were made."
    echo
fi
