Files
2025-01-02 11:22:47 +05:30

57 lines
1.7 KiB
Bash
Executable File

#!/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