Several restore checks added
This commit is contained in:
parent
6c601ad66b
commit
4932d84c67
1 changed files with 181 additions and 45 deletions
208
helium_helper.sh
208
helium_helper.sh
|
|
@ -5,6 +5,7 @@ set -e
|
|||
|
||||
## SOME COLOR
|
||||
CYN="\e[0;36m"
|
||||
MGT="\e[0;35m"
|
||||
YEL="\e[0;33m"
|
||||
RED="\e[0;31m"
|
||||
GRN="\e[0;32m"
|
||||
|
|
@ -74,13 +75,12 @@ shell_query() {
|
|||
if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then
|
||||
ACTIVE_SHELL=$SHELL_OPTION
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
shell_check() {
|
||||
SHELLS=("bash" "fish" "zsh")
|
||||
|
||||
for SHELL_OPTION in "${SHELLS[@]}" ; do
|
||||
for SHELL_OPTION in ${SHELLS[@]} ; do
|
||||
shell_query "$SHELL_OPTION"
|
||||
done
|
||||
}
|
||||
|
|
@ -354,7 +354,7 @@ call_backup() {
|
|||
|
||||
if [[ "$OVERWRITE_BACKUP" == "" || "$OVERWRITE_BACKUP" == "n" || "$OVERWRITE_BACKUP" == "N" ]] ; then
|
||||
echo -e "\n ${YEL}Skipping backup process...${CRS}\n"
|
||||
break
|
||||
exit_clean
|
||||
|
||||
elif [[ "$OVERWRITE_BACKUP" == "y" || "$OVERWRITE_BACKUP" == "Y" ]] ; then
|
||||
echo -e "\n ${YEL}Overwriting backup...${CRS}"
|
||||
|
|
@ -380,18 +380,30 @@ backup_logger() {
|
|||
if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||
|
||||
elif ! [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||
fi
|
||||
|
||||
elif [ "$ACTIVE_SHELL" == "bash" ] ; then
|
||||
if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||
|
||||
elif ! [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||
fi
|
||||
|
||||
elif [ "$ACTIVE_SHELL" == "fish" ] ; then
|
||||
if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||
|
||||
elif ! [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then
|
||||
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||
fi
|
||||
|
||||
else
|
||||
|
|
@ -448,7 +460,7 @@ script_backup() {
|
|||
pack_backup
|
||||
|
||||
else
|
||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -460,7 +472,7 @@ app_backup() {
|
|||
pack_backup
|
||||
|
||||
else
|
||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -472,7 +484,7 @@ config_backup() {
|
|||
pack_backup
|
||||
|
||||
else
|
||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -484,7 +496,7 @@ full_backup() {
|
|||
pack_backup
|
||||
|
||||
else
|
||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -611,8 +623,6 @@ select_backup() {
|
|||
|
||||
BACKUP_COMPRESSION=$(file $RESTORE_SOURCE | awk '{print $2}')
|
||||
decompress_backup
|
||||
configure_restore
|
||||
restore_backup
|
||||
}
|
||||
|
||||
decompress_backup() {
|
||||
|
|
@ -630,64 +640,149 @@ decompress_backup() {
|
|||
tar -xzf $APP_NAME.*.backup_*.tar.gz
|
||||
rm $APP_NAME.*.backup_*.tar.gz
|
||||
|
||||
elif [ "$BACKUP_COMPRESSION" == "zip" ] ; then
|
||||
unzip $APP_NAME.*.backup_*.tar.zip
|
||||
elif [ "$BACKUP_COMPRESSION" == "Zip" ] ; then
|
||||
unzip $APP_NAME.*.backup_*.tar.zip > /dev/null 2>&1
|
||||
tar -xf $APP_NAME.*.backup_*.tar
|
||||
rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar.zip
|
||||
rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar
|
||||
|
||||
else
|
||||
echo -e " ${YEL}TBA...${CRS}\n" #######################################################################
|
||||
fi
|
||||
|
||||
configure_restore
|
||||
}
|
||||
|
||||
configure_restore() {
|
||||
echo -e " - ${CRS}Analysing ${CYN}$BACKUP_TYPE${CRS} backup content...${CRS}\n"
|
||||
|
||||
RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$AUTO_SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER")
|
||||
RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER")
|
||||
|
||||
for RESTORE_ITEM in ${RESTORABLE[@]} ; do
|
||||
if [ -d "$RESTORE_ITEM" ] ; then
|
||||
if [ -d "$APP_CONFIG_PATH" ] ; then
|
||||
echo " - Folder : $RESTORE_ITEM | already present" >> $TMP/restore_conf
|
||||
echo $RESTORE_ITEM >> $TMP/restore_check
|
||||
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
|
||||
else
|
||||
echo " - Folder : $RESTORE_ITEM | not present" >> $TMP/restore_conf
|
||||
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||
fi
|
||||
|
||||
elif [ -f "$RESTORE_ITEM" ] ; then
|
||||
if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then
|
||||
echo " - File : $RESTORE_ITEM | already present" >> $TMP/restore_conf
|
||||
echo "\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
|
||||
elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then
|
||||
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
|
||||
elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then
|
||||
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
fi
|
||||
|
||||
else
|
||||
echo " - File : $RESTORE_ITEM | not present" >> $TMP/restore_conf
|
||||
if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||
|
||||
elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then
|
||||
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||
|
||||
elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then
|
||||
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
RESTORE_PATH=("INSTALL_PATH" "SCRIPT_PATH" "LAUNCHER_PATH" "APP_CONFIG_PATH")
|
||||
#################################################################################################
|
||||
for CHANGED in ${RESTORE_PATH[@]} ; do
|
||||
LOCAL_PATH=$(echo \$$CHANGED)
|
||||
echo $LOCAL_PATH
|
||||
if [ "$(cat conf_log | grep $RESTORE_PATH | awk -F '=' '{print $2}')" == "$LOCAL_PATH" ] ; then
|
||||
echo $(cat conf_log | grep "${CHANGED}_PATH") >> $TMP/restore_path_change
|
||||
echo "${CHANGED}_PATH"
|
||||
echo -e " - ${CRS}Configuring ${CYN}$BACKUP_TYPE${CRS} restoration process...${CRS}\n"
|
||||
i=1
|
||||
RESTORE_PATH=$(cat $TMP/restore_check | awk -F'=' '{print $1}')
|
||||
|
||||
else
|
||||
echo "BAD"
|
||||
echo $(cat conf_log | grep "${CHANGED}_PATH")
|
||||
for PATH_VARIABLE in ${RESTORE_PATH[@]} ; do
|
||||
PATH_CHECK=$(cat $TMP/restore_diff 2> /dev/null| grep "$PATH_VARIABLE" | awk '{print $1}' | awk -F'=' '{print $2}' | tr -d "\"")
|
||||
|
||||
if [[ "$PATH_CHECK" == "$INSTALL_PATH" || "$PATH_CHECK" == "$SCRIPT_PATH" || "$PATH_CHECK" == "$LAUNCHER_PATH" || "$PATH_CHECK" == "$APP_CONFIG_PATH" ]] ; then
|
||||
echo " $i - DEFAULT_$PATH_VARIABLE = $PATH_CHECK" >> $TMP/restore_path_change
|
||||
echo " BACKUP_$(cat conf_log | grep "$PATH_VARIABLE")" >> $TMP/restore_path_change
|
||||
echo >> $TMP/restore_path_change
|
||||
i=$(($i+1))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -f "$TMP/restore_path_change" ] ; then
|
||||
echo -e " ${YEL}Path change detected!\n${CRS}"
|
||||
echo -e "$(cat $TMP/restore_path_change)\n"
|
||||
|
||||
while true ; do
|
||||
read -p " Which path to use? (DEFAULT/backup) : " PATH_OVERWRITE
|
||||
echo
|
||||
|
||||
if [[ "$PATH_OVERWRITE" == "" || "$PATH_OVERWRITE" == "default" || "$PATH_OVERWRITE" == "DEFAULT" ]] ; then
|
||||
break
|
||||
|
||||
elif [[ "$PATH_OVERWRITE" == "backup" || "$PATH_OVERWRITE" == "BACKUP" ]] ; then
|
||||
TARGET_TO_CHANGE=$(cat $TMP/restore_diff | awk '{print $1}' | awk -F'=' '{print $1}')
|
||||
|
||||
for TARGET_VARIABLE in ${TARGET_TO_CHANGE[@]} ; do
|
||||
PATH_TO_CHANGE=$(cat conf_log | grep "$TARGET_VARIABLE" | awk -F'=' '{print $2}' | tr -d " ")
|
||||
|
||||
if [ "$TARGET_VARIABLE" == "INSTALL_PATH" ] ; then
|
||||
INSTALL_PATH=$PATH_TO_CHANGE
|
||||
|
||||
elif [ "$TARGET_VARIABLE" == "SCRIPT_PATH" ] ; then
|
||||
SCRIPT_PATH=$PATH_TO_CHANGE
|
||||
|
||||
elif [ "$TARGET_VARIABLE" == "LAUNCHER_PATH" ] ; then
|
||||
LAUNCHER_PATH=$PATH_TO_CHANGE
|
||||
|
||||
elif [ "$TARGET_VARIABLE" == "APP_CONFIG_PATH" ] ; then
|
||||
APP_CONFIG_PATH=$PATH_TO_CHANGE
|
||||
fi
|
||||
done
|
||||
break
|
||||
|
||||
else
|
||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for RESTORE_ITEM in ${RESTORABLE[@]} ; do
|
||||
if [ -d "$RESTORE_ITEM" ] ; then
|
||||
if [ -d "$APP_CONFIG_PATH" ] ; then
|
||||
echo -e " - Folder : $RESTORE_ITEM \t| ${RED}directory existing${CRS}" >> $TMP/restore_content
|
||||
|
||||
else
|
||||
echo -e " - Folder : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content
|
||||
fi
|
||||
|
||||
elif [ -f "$RESTORE_ITEM" ] ; then
|
||||
if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then
|
||||
echo -e " - File : $RESTORE_ITEM \t| ${RED}file existing${CRS}" >> $TMP/restore_content
|
||||
|
||||
else
|
||||
echo -e " - File : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
restore_backup
|
||||
}
|
||||
|
||||
restore_backup() {
|
||||
echo -e " ${LCY}Backup Content Summary${CRS}\n"
|
||||
echo -e "$(cat $TMP/restore_conf)\n"
|
||||
echo -e "\t${LCY}###### Restore Summary ######${CRS}\n"
|
||||
echo -e " ${MGT}Destination${CRS}"
|
||||
echo -e " - Install path \t: ${CYN}$INSTALL_PATH${CRS}"
|
||||
echo -e " - Script path \t: ${CYN}$SCRIPT_PATH${CRS}"
|
||||
echo -e " - Launcher path \t: ${CYN}$LAUNCHER_PATH${CRS}"
|
||||
echo -e " - $APP_NAME config \t: ${CYN}$APP_CONFIG_PATH${CRS}\n"
|
||||
echo -e " ${MGT}Backup content${CRS}"
|
||||
echo -e "$(cat $TMP/restore_content)\n"
|
||||
|
||||
if [ -f "$TMP/restore_check" ] ; then
|
||||
echo -e " ${RED}WARNING: Some items are existing on your system!${CRS}\n"
|
||||
echo -e " ${RED}WARNING: Some items are existent on your system!${CRS}\n"
|
||||
|
||||
while true ; do
|
||||
read -p " Overwrite existing? (y/N) : " RESTORE_OVERWRITE
|
||||
|
|
@ -697,10 +792,28 @@ restore_backup() {
|
|||
break
|
||||
|
||||
elif [[ "$RESTORE_OVERWRITE" == "y" || "$RESTORE_OVERWRITE" == "Y" ]] ; then
|
||||
EXISTING=$(cat $TMP/restore_check)
|
||||
echo -e "\n - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n"
|
||||
EXISTING=$(cat $TMP/restore_check | awk -F'=' '{print $1}')
|
||||
|
||||
for REPLACE in ${EXISTING[@]} ; do
|
||||
rm -rf $REPLACE
|
||||
if [ "$REPLACE" == "INSTALL_PATH" ] ; then
|
||||
rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||
chmod +x $APP_NAME.$FILE_EXTENSION
|
||||
mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH
|
||||
|
||||
elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then
|
||||
rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME
|
||||
chmod +x *.sh
|
||||
mv *.sh $SCRIPT_PATH
|
||||
|
||||
elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then
|
||||
rm -rf $LAUNCHER_PATH/$APP_NAME.desktop
|
||||
mv $APP_NAME.desktop $LAUNCHER_PATH
|
||||
|
||||
elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then
|
||||
rm -rf $APP_CONFIG_PATH
|
||||
mv $APP_CONFIG_FOLDER $HOME/.config
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
|
@ -712,11 +825,34 @@ restore_backup() {
|
|||
read -p " Proceed with changes? (Y/n) : " RESTORE_CONFIRM
|
||||
|
||||
if [[ "$RESTORE_CONFIRM" == "" || "$RESTORE_CONFIRM" == "y" || "$RESTORE_CONFIRM" == "Y" ]] ; then
|
||||
echo -e " - ${CRS}Copying ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n"
|
||||
echo -e " - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n"
|
||||
|
||||
for REPLACE in ${EXISTING[@]} ; do
|
||||
if [ "$REPLACE" == "INSTALL_PATH" ] ; then
|
||||
rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||
chmod +x $APP_NAME.$FILE_EXTENSION
|
||||
mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH
|
||||
|
||||
elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then
|
||||
rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME
|
||||
chmod +x *.sh
|
||||
mv *.sh $SCRIPT_PATH
|
||||
|
||||
elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then
|
||||
rm -rf $LAUNCHER_PATH/$APP_NAME.desktop
|
||||
mv $APP_NAME.desktop $LAUNCHER_PATH
|
||||
|
||||
elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then
|
||||
rm -rf $APP_CONFIG_PATH
|
||||
mv $APP_CONFIG_FOLDER $HOME/.config
|
||||
fi
|
||||
|
||||
elif [[ "$RESTORE_CONFIRM" == "n" || "$RESTORE_CONFIRM" == "N" ]] ; then
|
||||
echo -e "\n ${RED}Cancelled!${CRS}\n"
|
||||
break
|
||||
|
||||
else
|
||||
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue