2022-07-26 19:08:33 +00:00
#!/bin/bash
menu( ) {
2022-07-26 19:16:15 +00:00
clear -x
2022-07-26 19:15:49 +00:00
title
2022-07-26 20:35:25 +00:00
echo "1 Help"
echo "2 List DNS Names"
echo "3 Mount and Unmount PVC storage"
echo "4 Create a Backup"
echo "5 Restore a Backup"
echo "6 Delete a Backup"
echo "7 Update HeavyScript"
echo "8 Update Applications"
2022-07-26 19:08:33 +00:00
read -rt 600 -p "Please select an option by number: " selection
case $selection in
2022-07-26 20:35:25 +00:00
1)
2022-07-26 19:08:33 +00:00
help = "true"
; ;
2022-07-26 20:35:25 +00:00
2)
2022-07-26 19:08:33 +00:00
dns = "true"
; ;
2022-07-26 20:35:25 +00:00
3)
2022-07-26 19:08:33 +00:00
mount = "true"
; ;
2022-07-26 20:35:25 +00:00
4)
2022-07-26 19:08:33 +00:00
read -rt 600 -p "Please type the max number of backups to keep: " number_of_backups
re = '^[0-9]+$'
number_of_backups = $number_of_backups
! [ [ $number_of_backups = ~ $re ] ] && echo -e "Error: -b needs to be assigned an interger\n\"" " $number_of_backups " "\" is not an interger" >& 2 && exit
[ [ " $number_of_backups " -le 0 ] ] && echo "Error: Number of backups is required to be at least 1" && exit
2022-07-26 19:12:21 +00:00
echo "Generating backup, please be patient for output.."
2022-07-26 19:08:33 +00:00
backup " $number_of_backups "
; ;
2022-07-26 20:35:25 +00:00
5)
2022-07-26 19:08:33 +00:00
restore = "true"
; ;
2022-07-26 20:35:25 +00:00
6)
2022-07-26 19:08:33 +00:00
deleteBackup = "true"
; ;
2022-07-26 20:35:25 +00:00
7)
self_update = "true"
; ;
8)
2022-07-26 19:29:30 +00:00
script = $( readlink -f " $0 " )
script_path = $( dirname " $script " )
script_name = "heavy_script.sh"
cd " $script_path " || exit
clear -x
2022-07-26 20:31:30 +00:00
title
2022-07-26 20:15:42 +00:00
echo "What type of update would you like?"
echo "1) -U | Update all applications, ignores versions"
echo "2) -u | Update all applications, does not update Major releases"
2022-07-26 20:29:59 +00:00
echo
2022-07-26 20:15:42 +00:00
echo "0) Exit"
read -rt 600 -p "Please type the number associated with the flag above: " current_selection
if [ [ $current_selection = = 1 ] ] ; then
2022-07-26 20:32:21 +00:00
echo -e "\nHow many applications do you want updating at the same time?"
2022-07-26 20:29:59 +00:00
read -rt 600 -p "Please type an integer greater than 0: " up_async
2022-07-26 20:26:19 +00:00
update_selection += ( "-U" " $up_async " )
elif [ [ $current_selection = = 2 ] ] ; then
2022-07-26 20:32:21 +00:00
echo -e "\nHow many applications do you want updating at the same time?"
2022-07-26 20:29:59 +00:00
read -rt 600 -p "Please type an integer greater than 0: " up_async
2022-07-26 20:26:19 +00:00
update_selection += ( "-u" " $up_async " )
2022-07-26 20:15:42 +00:00
elif [ [ $current_selection = = 0 ] ] ; then
echo "Exiting.."
exit
else
echo " $current_selection was not an option, try again "
2022-07-26 20:30:41 +00:00
exit
2022-07-26 20:15:42 +00:00
fi
2022-07-26 19:49:58 +00:00
while true
do
2022-07-26 20:15:42 +00:00
clear -x
2022-07-26 20:31:30 +00:00
title
2022-07-26 19:35:52 +00:00
echo "Choose your update options "
2022-07-26 19:29:30 +00:00
echo
2022-07-26 20:15:42 +00:00
echo "1) -b | Back-up your ix-applications dataset, specify a number after -b"
echo "2) -i | Add application to ignore list, one by one, see example below."
echo "3) -r | Roll-back applications if they fail to update"
echo "4) -S | Shutdown applications prior to updating"
echo "5) -v | verbose output"
echo "6) -t | Set a custom timeout in seconds when checking if either an App or Mountpoint correctly Started, Stopped or (un)Mounted. Defaults to 500 seconds"
echo "7) -s | sync catalog"
echo "8) -p | Prune unused/old docker images"
2022-07-26 19:49:58 +00:00
echo
echo "0) Done making selections, proceed with update"
2022-07-26 19:29:30 +00:00
echo
2022-07-26 19:49:58 +00:00
read -rt 600 -p "Please type the number associated with the flag above: " current_selection
if [ [ $current_selection = = 0 ] ] ; then
2022-07-26 19:50:56 +00:00
exec bash " $script_name " " ${ update_selection [@] } "
2022-07-26 19:52:09 +00:00
exit
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 1 ] ] ; then
2022-07-26 20:15:42 +00:00
read -rt 600 -p "Up to how many backups should we keep?\n Please type an integer: " up_backups
update_selection += ( "-b" " $up_backups " )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 2 ] ] ; then
2022-07-26 20:15:42 +00:00
read -rt 600 -p "What is the name of the application we should ignore?: " up_ignore
update_selection += ( "-i" " $up_ignore " )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 3 ] ] ; then
2022-07-26 20:15:42 +00:00
update_selection += ( "-r" )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 4 ] ] ; then
2022-07-26 20:15:42 +00:00
update_selection += ( "-S" )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 5 ] ] ; then
2022-07-26 20:15:42 +00:00
update_selection += ( "-v" )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 6 ] ] ; then
2022-07-26 20:15:42 +00:00
read -rt 600 -p "What do you want your timeout to be?: " up_timeout
update_selection += ( "-t" " $up_timeout " )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 7 ] ] ; then
2022-07-26 20:15:42 +00:00
update_selection += ( "-s" )
2022-07-26 20:16:51 +00:00
elif [ [ $current_selection = = 8 ] ] ; then
2022-07-26 20:15:42 +00:00
update_selection += ( "-p" )
2022-07-26 19:49:58 +00:00
fi
done
2022-07-26 19:08:33 +00:00
; ;
*)
echo "Unknown option" && exit 1
; ;
esac
echo ""
}
export -f menu