mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
47 lines
1.2 KiB
Bash
47 lines
1.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Author : Gaston Gonzalez
|
||
|
|
# Date : 15 January 2025
|
||
|
|
# Updated : 17 January 2025
|
||
|
|
# Purpose : Restore backup to user's home directory.
|
||
|
|
|
||
|
|
BACKUP_FILE_PATTERN="etc-user-backup-*.tar.gz"
|
||
|
|
USB_MEDIA_MOUNT=/media
|
||
|
|
|
||
|
|
options=()
|
||
|
|
|
||
|
|
# 1. Search home directory
|
||
|
|
echo "Searching ${HOME} for backup files...."
|
||
|
|
while IFS= read -r backup; do
|
||
|
|
options+=("${backup}" "")
|
||
|
|
done < <(find ~ -type f -name ${BACKUP_FILE_PATTERN} 2> /dev/null)
|
||
|
|
|
||
|
|
# 2. Search attached USB drive
|
||
|
|
DF_OUT=$(df -h | grep ${USB_MEDIA_MOUNT})
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo "Searching ${USB_MEDIA_MOUNT} for backup files...."
|
||
|
|
while IFS= read -r backup; do
|
||
|
|
options+=("${backup}" "")
|
||
|
|
done < <(find ${USB_MEDIA_MOUNT} -type f -name ${BACKUP_FILE_PATTERN} 2> /dev/null)
|
||
|
|
fi
|
||
|
|
|
||
|
|
selected_file=$(dialog --clear --menu "Select a backup to restore" 20 80 10 "${options[@]}" 3>&1 1>&2 2>&3)
|
||
|
|
exit_status=$?
|
||
|
|
|
||
|
|
tput sgr 0 && clear
|
||
|
|
|
||
|
|
[ ${exit_status} -ne 0 ] && echo "No backup selected. Exiting." && exit 1
|
||
|
|
|
||
|
|
[ ! -e "${selected_file}" ] && echo "File ${selected_file} does not exist. Exiting."
|
||
|
|
|
||
|
|
CWD_DIR=$(pwd)
|
||
|
|
|
||
|
|
cd ~ && tar -xzf "${selected_file}"
|
||
|
|
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo "${selected_file} restored to ${HOME}."
|
||
|
|
else
|
||
|
|
echo "An error occured while attempting to restore ${selected_file}"
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ${CWD}
|