Files
PTS-Team/menu/functions/pgvault.func
thesammykins b85d46105c Revert "Merge pull request #31 from Pandaura/dev"
This reverts commit 619678b60b, reversing
changes made to 9ec20a91e5.
2021-11-03 08:42:27 +11:00

626 lines
25 KiB
Bash

#!/bin/bash
#
# Title: Backup and Restore
# Author(s): Admin9705
# GNU: General Public License v3.0
################################################################################
runningcheck() {
initial2
runcheck5=$(docker ps | grep ${program_var})
if [[ "$runcheck5" != "" ]]; then running=1; else running=0; fi
}
initial() {
rm -rf /var/plexguide/pgvault.output 1>/dev/null 2>&1
rm -rf /var/plexguide/pgvault.buildup 1>/dev/null 2>&1
rm -rf /var/plexguide/program.temp 1>/dev/null 2>&1
rm -rf /var/plexguide/app.list 1>/dev/null 2>&1
rm -rf /var/plexguide/pgvault.output 1>/dev/null 2>&1
touch /var/plexguide/pgvault.output
touch /var/plexguide/program.temp
touch /var/plexguide/app.list
touch /var/plexguide/pgvault.buildup
touch /var/plexguide/pgvault.output
touch /var/plexguide/rclone.size
space=$(cat /var/plexguide/data.location)
# To Get Used Space
used=$(df -h /opt/appdata/plexguide | tail -n +2 | awk '{print $3}')
# To Get All Space
capacity=$(df -h /opt/appdata/plexguide | tail -n +2 | awk '{print $2}')
# Percentage
percentage=$(df -h /opt/appdata/plexguide | tail -n +2 | awk '{print $5}')
}
initial2() {
path=$(cat /var/plexguide/server.hd.path)
tarlocation=$(cat /var/plexguide/data.location)
program_size=$(cat /var/plexguide/rclone.size)
program_var=$(cat /tmp/program_var)
server_id=$(cat /var/plexguide/server.id)
}
final() {
echo
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
read -p '✅ Process Complete! | PRESS [ENTER] ' typed </dev/tty
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
bash /opt/pgvault/pgvault.sh
exit
}
queued() {
echo
read -p "⛔️ ERROR - $typed Already Queued! | Press [ENTER] " typed </dev/tty
}
badserver() {
echo
read -p '⛔️ ERROR - Type an Exact Server Name | Press [ENTER] ' typed </dev/tty
}
#not used yet
rclonelist() {
ls -l /mnt/gdrive/plexguide/backup | grep "^d" | awk '{print $9}' >pgvault.serverlist
}
pgboxrecall() {
ls -p /opt/coreapps/apps | grep -v / >/var/plexguide/pgvault.apprecall
while read p; do
sed -i "/^$p\b/Id" /var/plexguide/pgvault.apprecall
done </opt/pgvault/exempt.list
while read p; do
sed -i "/^$p\b/Id" /var/plexguide/pgvault.apprecall
basename "$p" .yml >>/var/plexguide/pgvault.apprecall
done </var/plexguide/pgvault.apprecall
}
mathprime() {
### List Out Apps In Readable Order (One's Not Installed)
num=0
rm -rf /var/plexguide/program.temp 1>/dev/null 2>&1
while read p; do
echo -n $p >>/var/plexguide/program.temp
echo -n " " >>/var/plexguide/program.temp
num=$((num + 1))
if [ "$num" == 7 ]; then
num=0
echo " " >>/var/plexguide/program.temp
fi
done </var/plexguide/pgvault.apprecall
}
################################################ FOR BACKUP - START
apprecall() {
tree -d -L 1 /opt/appdata | awk '{print $2}' | tail -n +2 | head -n -2 >/var/plexguide/pgvault.apprecall
while read p; do
sed -i "/^$p\b/Id" /var/plexguide/pgvault.apprecall
done </opt/pgvault/exempt.list
### Blank Out Temp List
rm -rf /var/plexguide/program.temp && touch /var/plexguide/program.temp
mathprime
}
buildup() {
echo "$typed" >>/var/plexguide/pgvault.buildup
sed -i "/^$typed\b/Id" /var/plexguide/pgvault.apprecall
num=0
rm -rf /var/plexguide/pgvault.output 1>/dev/null 2>&1
while read p; do
echo -n $p >>/var/plexguide/pgvault.output
echo -n " " >>/var/plexguide/pgvault.output
if [ "$num" == 7 ]; then
num=0
echo " " >>/var/plexguide/pgvault.output
fi
done </var/plexguide/pgvault.buildup
mathprime
vaultbackup
}
################################################ FOR BACKUP - END
serverprime() {
tree -d -L 1 /mnt/gdrive/plexguide/backup | awk '{print $2}' | tail -n +2 | head -n -2 >/tmp/server.list
### List Out Apps In Readable Order (One's Not Installed)
num=0
rm -rf /var/plexguide/program.temp 1>/dev/null 2>&1
while read p; do
echo -n $p >>/var/plexguide/program.temp
echo -n " " >>/var/plexguide/program.temp
num=$((num + 1))
if [ "$num" == 7 ]; then
num=0
echo " " >>/var/plexguide/program.temp
fi
done </tmp/server.list
servers=$(cat /var/plexguide/program.temp)
server_id=$(cat /var/plexguide/server.id)
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 Vault ~ Server Recall
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 Current [${server_id}] & Prior Servers Detected:
$servers
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Z] Exit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
read -p '🌍 Type Server Name | Press [ENTER]: ' server </dev/tty
echo $server >/tmp/server.select
if [[ "$server" == "exit" || "$server" == "Exit" || "$server" == "EXIT" || "$server" == "z" || "$server" == "Z" ]]; then exit; fi
current2=$(cat /tmp/server.list | grep "\<$server\>")
if [ "$current2" == "" ]; then
badserver
serverprime
fi
tempserver=$server
ls -l /mnt/gdrive/plexguide/backup/$tempserver | awk '{print $9}' | tail -n +2 >/var/plexguide/pgvault.restoreapps
### Blank Out Temp List
rm -rf /var/plexguide/pgvault.apprecall 1>/dev/null 2>&1
touch /var/plexguide/pgvault.apprecall
while read p; do
basename "$p" .tar >>/var/plexguide/pgvault.apprecall
done </var/plexguide/pgvault.restoreapps
### Blank Out Temp List
rm -rf /var/plexguide/program.temp 1>/dev/null 2>&1
touch /var/plexguide/program.temp
mathprime
}
buildup2() {
echo "$typed" >>/var/plexguide/pgvault.buildup
sed -i "/^$typed\b/Id" /var/plexguide/pgvault.apprecall
num=0
rm -rf /var/plexguide/pgvault.output 1>/dev/null 2>&1
while read p; do
echo -n $p >>/var/plexguide/pgvault.output
echo -n " " >>/var/plexguide/pgvault.output
if [ "$num" == 7 ]; then
num=0
echo " " >>/var/plexguide/pgvault.output
fi
done </var/plexguide/pgvault.buildup
mathprime
vaultrestore
}
################################################ FOR RESTORE - START
################################################ FOR RESTORE - END
######################################################## START - PG Vault Backup
backup_all_start() {
while read p; do
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vault - Backing Up: $p
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2.5
# Store Used Program
echo $p >/tmp/program_var
# Execute Main Program
backup_process
sleep 2
done </var/plexguide/pgvault.apprecall
final
}
backup_start() {
while read p; do
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vault - Backing Up: $p
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2.5
# Store Used Program
echo $p >/tmp/program_var
# Execute Main Program
backup_process
sleep 2
done </var/plexguide/pgvault.buildup
final
}
backup_process() {
initial2
##### Stop Docker Container if Running
runningcheck
if [[ "$running" == "1" ]]; then
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Stopping Docker Container - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 1
docker stop $program_var 1>/dev/null 2>&1
fi
###### Start the Backup Process - Backup Locally First
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Zipping Data Locally - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
path=$(cat /var/plexguide/server.hd.path)
tarlocation=$(cat /var/plexguide/data.location)
server_id=$(cat /var/plexguide/server.id)
tar \
--warning=no-file-changed --ignore-failed-read --absolute-names --warning=no-file-removed \
--exclude-from=/opt/pgvault/exclude.list \
-C /opt/appdata/${program_var} -cvf ${tarlocation}/${program_var}.tar ./
##### Restart Docker Application if was Running Prior
if [[ "$running" == "1" ]]; then
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Restarting Docker Application - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2
docker restart $program_var 1>/dev/null 2>&1
fi
###### Backing Up Files to GDrive
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Sending Zipped Data to Google Drive - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
useragent="$(cat /var/plexguide/uagent)"
bwlimit="$(cat /var/plexguide/blitz.bw)"
vfs_dcs="$(cat /var/plexguide/vfs_dcs)"
vfs_mt="$(cat /var/plexguide/vfs_mt)"
vfs_t="$(cat /var/plexguide/vfs_t)"
vfs_c="$(cat /var/plexguide/vfs_c)"
rclone --config /opt/appdata/plexguide/rclone.conf mkdir gdrive:/plexguide/backup/${server_id} 1>/dev/null 2>&1
rclone moveto ${tarlocation}/${program_var}.tar \
gdrive:/plexguide/backup/${server_id}/${program_var}.tar \
--config /opt/appdata/plexguide/rclone.conf \
-v --checksum --stats-one-line --stats 1s --progress \
--tpslimit=10 \
--checkers="$vfs_c" \
--transfers="$vfs_t" \
--no-traverse \
--fast-list \
--bwlimit="$bwlimit" \
--drive-chunk-size="$vfs_dcs" \
--user-agent="$useragent"
##### Remove File Incase
rm -rf ${tarlocation}/${program_var}.tar 1>/dev/null 2>&1
}
######################################################## END - PG Vault Backup
#
##################################################### START - PG Vault Restore
restore_all_start() {
while read p; do
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vault - Restoring: $p
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2.5
# Store Used Program
echo $p >/tmp/program_var
# Execute Main Program
restore_process
sleep 2
done </var/plexguide/pgvault.apprecall
final
}
restore_start() {
while read p; do
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Vault - Restoring: $p
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2.5
# Store Used Program
echo $p >/tmp/program_var
# Execute Main Program
restore_process
sleep 2
done </var/plexguide/pgvault.buildup
final
}
restore_process() {
initial2
srecall=$(cat /tmp/server.select)
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Determining Initial File Size - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
size=$(du -sh --apparent-size /mnt/gdrive/plexguide/backup/${srecall}/${program_var}.tar | /usr/bin/awk '{print $1}')
sleep 2
echo "Initial File Size: $size"
sleep 2
###### Backing Up Files to GDrive
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Downloading Data From Google Drive - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
rclone --config /opt/appdata/plexguide/rclone.conf --stats-one-line \
--stats 1s --progress \
copy gdrive:/plexguide/backup/${srecall}/${program_var}.tar \
${tarlocation} \
-v --checksum --drive-chunk-size=64M --transfers=8
##### Stop Docker Container if Running
runningcheck
if [ "$running" == "1" ]; then
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Stopping Docker Container - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 1
docker stop $program_var 1>/dev/null 2>&1
fi
###### Start the Backup Process - Backup Locally First
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ UnZipping & Restoring Data - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
mkdir -p "/opt/appdata/${program_var}"
rm -rf "/opt/appdata/${program_var}/*"
chown -R 1000:1000 "/opt/appdata/${program_var}"
chmod -R 775 "/opt/appdata/${program_var}"
tar -C /opt/appdata/${program_var} -xvf ${tarlocation}/${program_var}.tar
chown -R 1000:1000 "/opt/appdata/${program_var}"
chmod -R 775 "/opt/appdata/${program_var}"
##rebuild app after restore
if [[ -e "/opt/coreapps/apps/$program_var.yml" ]]; then ansible-playbook /opt/coreapps/apps/$program_var.yml; fi
if [[ -e "/opt/communityapps/$program_var.yml" ]]; then ansible-playbook /opt/communityapps/apps/$program_var.yml; fi
if [[ -e "/opt/mycontainers/$program_var.yml" ]]; then ansible-playbook /opt/mycontainers/apps/$program_var.yml; fi
##### Restart Docker Application if was Running Prior
if [[ "$running" == "1" ]]; then
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
↘️ Restarting Docker Application - $program_var
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
sleep 2
docker restart $program_var 1>/dev/null 2>&1
fi
##### Remove File Incase
rm -rf ${tarlocation}/${program_var}.tar 1>/dev/null 2>&1
}
##################################################### END - PG Vault Restore
#
##################################################### START - Backup Interface
vaultbackup() {
### List Out Apps In Readable Order (One's Not Installed)
notrun=$(cat /var/plexguide/program.temp)
buildup=$(cat /var/plexguide/pgvault.output)
if [[ "$buildup" == "" ]]; then buildup="NONE"; fi
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 Vault ~ Data Storage
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 App Data available to Backup
$notrun
💾 Apps Queued for Backup
$buildup
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[A] Backup
[Z] Exit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
read -p '🌍 Type APP for QUEUE | Type all to backup all apps | Press [ENTER]: ' typed </dev/tty
if [[ "$typed" == "all" || "$typed" == "All" || "$typed" == "ALL" ]]; then
backup_all_start
fi
if [[ "$typed" == "backup" || "$typed" == "a" || "$typed" == "A" ]]; then backup_start; fi
if [[ "$typed" == "exit" || "$typed" == "Exit" || "$typed" == "EXIT" || "$typed" == "z" || "$typed" == "Z" ]]; then exit; fi
current2=$(cat /var/plexguide/pgvault.buildup | grep "\<$typed\>")
if [ "$current2" != "" ]; then
queued
vaultbackup
fi
cat /var/plexguide/pgvault.buildup >/tmp/appcheck.5
cat /var/plexguide/pgvault.apprecall >>/tmp/appcheck.5
current1=$(cat /tmp/appcheck.5 | grep "\<$typed\>")
if [[ "$current1" == "" ]]; then badinput && vaultbackup; fi
buildup
}
##################################################### END - Backup Interface
#
##################################################### START - Restore Interface
vaultrestore() {
notrun=$(cat /var/plexguide/program.temp)
buildup=$(cat /var/plexguide/pgvault.output)
if [ "$buildup" == "" ]; then buildup="NONE"; fi
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 Vault ~ Data Recall
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 App Data available to Restore
$notrun
💾 Apps Queued for Restore
$buildup
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[A] Restore
[Z] Exit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
read -p '🌍 Type APP for QUEUE | Type all to restore all apps | Press [ENTER]: ' typed </dev/tty
if [[ "$typed" == "all" || "$typed" == "All" || "$typed" == "ALL" ]]; then restore_all_start; fi
if [[ "$typed" == "restore" || "$typed" == "a" || "$typed" == "A" ]]; then restore_start; fi
if [[ "$typed" == "exit" || "$typed" == "Exit" || "$typed" == "EXIT" || "$typed" == "z" || "$typed" == "Z" ]]; then exit; fi
current2=$(cat /var/plexguide/pgvault.buildup | grep "\<$typed\>")
if [ "$current2" != "" ]; then
queued
vaultrestore
fi
cat /var/plexguide/pgvault.buildup >/tmp/appcheck.5
cat /var/plexguide/pgvault.apprecall >>/tmp/appcheck.5
current2=$(cat /tmp/appcheck.5 | grep "\<$typed\>")
echo $current2 >/var/plexguide/app_rebuild
#Rebuild Depending on Location
if [[ "$current2" == "" ]]; then badinput && vaultrestore; fi
buildup2
}
##################################################### START Primary Interface
primaryinterface() {
initial2
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Vault Interface
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌵 Disk Used Space: $used of $capacity | $percentage Used Capacity
[1] Data Backup
[2] Data Restore
[3] Current Server ID : $server_id
[4] Processing Location : $tarlocation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Z] Exit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
read -p 'Type a Number | Press [ENTER]: ' typed </dev/tty
if [[ "$typed" == "1" ]]; then
vaultbackup
primaryinterface
elif [[ "$typed" == "2" ]]; then
serverprime
vaultrestore
primaryinterface
elif [[ "$typed" == "3" ]]; then
echo "0" >/var/plexguide/server.id.stored
bash /opt/plexguide/menu/interface/serverid.sh
primaryinterface
elif [[ "$typed" == "4" ]]; then
bash /opt/pgvault/location.sh
primaryinterface
elif [[ "$typed" == "Z" || "$typed" == "z" ]]; then
exit
else
badinput
primaryinterface
fi
}
##################################################### END Primary Interface
restorecheck() {
if [[ "$restoreid" == "[NOT-SET]" ]]; then
tee <<-EOF
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⛔️ WARNING! - You Must Set Your Recovery ID First! Restarting Process!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EOF
read -n 1 -s -r -p "Press [ANY] Key to Continue "
echo
primaryinterface
exit
fi
}