2022-07-26 19:08:33 +00:00
#!/bin/bash
menu( ) {
2022-07-27 01:04:27 +00:00
script = $( readlink -f " $0 " )
script_path = $( dirname " $script " )
script_name = "heavy_script.sh"
cd " $script_path " || exit
clear -x
title
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"
echo
echo "0) Exit"
read -rt 600 -p "Please select an option by number: " selection
2022-07-27 00:21:45 +00:00
2022-07-27 01:04:27 +00:00
case $selection in
2022-07-27 00:21:45 +00:00
0)
exit
; ;
1)
help = "true"
; ;
2)
dns = "true"
; ;
3)
mount = "true"
; ;
4)
2022-07-27 02:23:52 +00:00
read -rt 600 -p "What is the maximun number of backups you would like?: " number_of_backups
2022-07-27 02:21:48 +00:00
backup = "true"
2022-07-27 04:45:12 +00:00
; ;
2022-07-27 00:21:45 +00:00
5)
restore = "true"
; ;
6)
2022-07-27 00:40:07 +00:00
deleteBackup = "true"
2022-07-27 00:21:45 +00:00
; ;
7)
self_update = "true"
; ;
8)
while true
do
clear -x
title
echo "Choose Your Update Type"
echo "-----------------------"
echo "1) -U | Update all applications, ignores versions"
echo "2) -u | Update all applications, does not update Major releases"
echo
echo "0) Exit"
echo
read -rt 600 -p "Please type the number associated with the flag above: " current_selection
if [ [ $current_selection = = 1 ] ] ; then
echo -e "\nHow many applications do you want updating at the same time?"
read -rt 600 -p "Please type an integer greater than 0: " up_async
if [ [ $up_async = = 0 ] ] ; then
echo " Error: \" $up_async \" is less than 1 "
echo "NOT adding it to the list"
sleep 5
continue
elif ! [ [ $up_async = ~ ^[ 0-9] +$ ] ] ; then
echo " Error: \" $up_async \" is invalid, it needs to be an integer "
echo "NOT adding it to the list"
sleep 5
continue
else
update_selection += ( "-U" " $up_async " )
break
fi
elif [ [ $current_selection = = 2 ] ] ; then
echo -e "\nHow many applications do you want updating at the same time?"
read -rt 600 -p "Please type an integer greater than 0: " up_async
if [ [ $up_async = = 0 ] ] ; then
echo " Error: \" $up_async \" is less than 1 "
echo "NOT adding it to the list"
sleep 5
continue
elif ! [ [ $up_async = ~ ^[ 0-9] +$ ] ] ; then
echo " Error: \" $up_async \" is invalid, it needs to be an integer "
echo "NOT adding it to the list"
sleep 5
continue
else
update_selection += ( "-u" " $up_async " )
break
fi
elif [ [ $current_selection = = 0 ] ] ; then
echo "Exiting.."
exit
else
echo " $current_selection was not an option, try again "
2022-07-26 23:28:51 +00:00
exit
2022-07-27 00:21:45 +00:00
fi
done
while true
do
clear -x
title
echo "Choose Your Update Options"
echo "--------------------------"
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"
echo
echo "0) Done making selections, proceed with update"
echo
echo "Current Choices"
echo "---------------"
echo " bash heavy_script.sh ${ update_selection [*] } "
echo
read -rt 600 -p "Please type the number associated with the flag above: " current_selection
2022-07-26 23:29:51 +00:00
2022-07-27 04:45:12 +00:00
case $current_selection in
0)
clear -x
echo " Running \"bash heavy_script.sh ${ update_selection [*] } \" "
echo
exec bash " $script_name " " ${ update_selection [@] } "
exit
; ;
1)
2022-07-27 04:46:58 +00:00
echo "Up to how many backups should we keep?"
read -rt 600 -p "Please type an integer: " up_backups
! [ [ $up_backups = ~ ^[ 0-9] +$ ] ] && echo -e " Error: \" $up_backups \" is invalid, it needs to be an integer\nNOT adding it to the list " && sleep 5 && continue
[ [ $up_backups = = 0 ] ] && echo -e "Error: Number of backups cannot be 0\nNOT adding it to the list" && sleep 5 && continue
update_selection += ( "-b" " $up_backups " )
2022-07-27 04:45:12 +00:00
; ;
2)
read -rt 600 -p "What is the name of the application we should ignore?: " up_ignore
update_selection += ( "-i" " $up_ignore " )
; ;
3)
update_selection += ( "-r" )
; ;
4)
update_selection += ( "-S" )
; ;
5)
update_selection += ( "-v" )
; ;
6)
echo "What do you want your timeout to be?"
read -rt 600 -p "Please type an integer: " up_timeout
! [ [ $up_timeout = ~ ^[ 0-9] +$ ] ] && echo -e " Error: \" $up_timeout \" is invalid, it needs to be an integer\nNOT adding it to the list " && sleep 5 && continue
; ;
7)
update_selection += ( "-s" )
; ;
8)
update_selection += ( "-p" )
; ;
*)
echo " $current_selection was not an option, try again " && sleep 5 && continue
; ;
esac
2022-07-27 00:21:45 +00:00
done
; ;
*)
2022-07-27 00:22:19 +00:00
echo "That was not an option, please try agian" && sleep 5 && menu
2022-07-27 00:21:45 +00:00
; ;
2022-07-27 01:04:27 +00:00
esac
echo
2022-07-26 19:08:33 +00:00
}
export -f menu