* start 3.2.2

* -z

* !=

* “”

* headers

* Change to new PH_EXEC run

* Empty list detection for CNAME

* IGNORE list

* Skip Gravity logic

* oops

* Two == to be super serious

* variables are hard

* change colors

* the colors

* I’m getting rusty

* echo_lines

* 3.2.2

Co-authored-by: Michael Stanclift <vmstan@sovereign.local>
This commit is contained in:
Michael Stanclift 2021-01-10 10:37:35 -06:00 committed by GitHub
parent 1c033ef1f6
commit b912f74ebb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 178 additions and 90 deletions

View File

@ -26,6 +26,10 @@ An example would be setting different caching options for Pi-hole, or specifying
- Changes application of permissions for Docker instances to UID:GID instead of names. (#99/#128) - Changes application of permissions for Docker instances to UID:GID instead of names. (#99/#128)
- Adds `./gravity-sync info` function to help with troubleshooting installation/configuration settings. - Adds `./gravity-sync info` function to help with troubleshooting installation/configuration settings.
#### 3.2.2
- Restore process completely revamped. You can now choose to ignore any of the three elements during restore. The prompts are clearer and more consistent with Gravity Sync script styling. Importantly, lack of backup files in an element will not cause the restoration to fail.
## 3.1 ## 3.1
### The Container Release ### The Container Release

View File

@ -1 +1 @@
3.2.1 3.2.2

View File

@ -3,7 +3,7 @@ SCRIPT_START=$SECONDS
# GRAVITY SYNC BY VMSTAN ##################### # GRAVITY SYNC BY VMSTAN #####################
PROGRAM='Gravity Sync' PROGRAM='Gravity Sync'
VERSION='3.2.1' VERSION='3.2.2'
# For documentation or downloading updates visit https://github.com/vmstan/gravity-sync # For documentation or downloading updates visit https://github.com/vmstan/gravity-sync
# Requires Pi-Hole 5.x or higher already be installed, for help visit https://pi-hole.net # Requires Pi-Hole 5.x or higher already be installed, for help visit https://pi-hole.net

View File

@ -52,3 +52,8 @@ function echo_fail {
function echo_need { function echo_need {
echo -en "${NEED} ${MESSAGE}: " echo -en "${NEED} ${MESSAGE}: "
} }
### Lines
function echo_lines {
echo -e "========================================================"
}

View File

@ -394,9 +394,9 @@ function config_delete {
MESSAGE="Configuration File Exists" MESSAGE="Configuration File Exists"
echo_warn echo_warn
echo -e "========================================================" echo_lines
cat ${LOCAL_FOLDR}/${CONFIG_FILE} cat ${LOCAL_FOLDR}/${CONFIG_FILE}
echo -e "========================================================" echo_lines
MESSAGE="Are you sure you want to erase this configuration?" MESSAGE="Are you sure you want to erase this configuration?"
echo_warn echo_warn

View File

@ -30,76 +30,152 @@ function restore_gs {
MESSAGE="This will restore your settings on $HOSTNAME with a previous version!" MESSAGE="This will restore your settings on $HOSTNAME with a previous version!"
echo_warn echo_warn
MESSAGE="PREVIOUS BACKUPS AVAILABLE FOR RESTORATION" GRAVITY_DATE_LIST=$(ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${GRAVITY_FI} | colrm 18)
if [ "${GRAVITY_DATE_LIST}" != "" ]
then
MESSAGE="Previous ${GRAVITY_FI} Versions Available to Restore"
echo_info echo_info
echo_lines
ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${GRAVITY_FI} | colrm 18 ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${GRAVITY_FI} | colrm 18
echo -e "IGNORE-GRAVITY"
echo_lines
MESSAGE="Select backup date to restore ${GRAVITY_FI} from" MESSAGE="Select backup date to restore ${GRAVITY_FI} from"
echo_need echo_need
read INPUT_BACKUP_DATE read INPUT_BACKUP_DATE
if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ] if [ "$INPUT_BACKUP_DATE" == "IGNORE-GRAVITY" ]
then then
MESSAGE="Backup File Selected" MESSAGE="Skipping Gravity"
echo_warn
elif [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ]
then
MESSAGE="Backup Selected"
echo_good
DO_GRAVITY_RESTORE='1'
else else
MESSAGE="Invalid Request" MESSAGE="Invalid Request"
echo_info echo_info
exit_nochange exit_nochange
fi fi
fi
if [ "$SKIP_CUSTOM" != '1' ] if [ "$SKIP_CUSTOM" != '1' ]
then then
if [ -f ${PIHOLE_DIR}/${CUSTOM_DNS} ] if [ -f ${PIHOLE_DIR}/${CUSTOM_DNS} ]
then then
CUSTOM_DATE_LIST=$(ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CUSTOM_DNS} | colrm 18)
if [ "${CUSTOM_DATE_LIST}" != "" ]
then
MESSAGE="Previous ${CUSTOM_DNS} Versions Available to Restore"
echo_info
echo_lines
ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CUSTOM_DNS} | colrm 18 ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CUSTOM_DNS} | colrm 18
echo -e "IGNORE-CUSTOM"
echo_lines
MESSAGE="Select backup date to restore ${CUSTOM_DNS} from" MESSAGE="Select backup date to restore ${CUSTOM_DNS} from"
echo_need echo_need
read INPUT_DNSBACKUP_DATE read INPUT_DNSBACKUP_DATE
if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ] if [ "$INPUT_DNSBACKUP_DATE" == "IGNORE-CUSTOM" ]
then then
MESSAGE="Backup File Selected" MESSAGE="Skipping DNS"
echo_warn
elif [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ]
then
MESSAGE="Backup Selected"
echo_good
DO_CUSTOM_RESTORE='1'
else else
MESSAGE="Invalid Request" MESSAGE="Invalid Request"
echo_info echo_fail
exit_nochange exit_nochange
fi fi
else
MESSAGE="No ${CUSTOM_DNS} Backups"
echo_info
fi
fi fi
fi fi
if [ "$INCLUDE_CNAME" == '1' ] if [ "$INCLUDE_CNAME" == '1' ]
then then
if [ -f ${DNSMAQ_DIR}/${CNAME_CONF} ] if [ -f ${DNSMAQ_DIR}/${CNAME_CONF} ]
then then
CNAME_DATE_LIST=$(ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CNAME_CONF} | colrm 18)
if [ "${CNAME_DATE_LIST}" != "" ]
then
MESSAGE="Previous ${CNAME_CONF} Versions Available to Restore"
echo_info
echo_lines
ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CNAME_CONF} | colrm 18 ls ${LOCAL_FOLDR}/${BACKUP_FOLD} | grep $(date +%Y) | grep ${CNAME_CONF} | colrm 18
echo -e "IGNORE-CNAME"
echo_lines
MESSAGE="Select backup date to restore ${CNAME_CONF} from" MESSAGE="Select backup date to restore ${CNAME_CONF} from"
echo_need echo_need
read INPUT_CNAMEBACKUP_DATE read INPUT_CNAMEBACKUP_DATE
if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_CNAMEBACKUP_DATE}-${CNAME_CONF}.backup ] if [ "$INPUT_CNAMEBACKUP_DATE" == "IGNORE-CNAME" ]
then then
MESSAGE="Backup File Selected" MESSAGE="Skipping CNAME"
echo_warn
elif [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_CNAMEBACKUP_DATE}-${CNAME_CONF}.backup ]
then
MESSAGE="Backup Selected"
echo_good
DO_CNAME_RESTORE='1'
else else
MESSAGE="Invalid Request" MESSAGE="Invalid Request"
echo_info echo_fail
exit_nochange exit_nochange
fi fi
else
MESSAGE="No ${CNAME_CONF} Backups"
echo_info
fi
fi fi
fi fi
if [ "$DO_GRAVITY_RESTORE" == "1" ]
then
MESSAGE="${GRAVITY_FI} from ${INPUT_BACKUP_DATE} Selected" MESSAGE="${GRAVITY_FI} from ${INPUT_BACKUP_DATE} Selected"
echo_info echo_info
else
MESSAGE="${GRAVITY_FI} Restore Unavailable"
echo_info
fi
if [ "$DO_CUSTOM_RESTORE" == "1" ]
then
MESSAGE="${CUSTOM_DNS} from ${INPUT_DNSBACKUP_DATE} Selected" MESSAGE="${CUSTOM_DNS} from ${INPUT_DNSBACKUP_DATE} Selected"
echo_info echo_info
else
MESSAGE="${CUSTOM_DNS} Restore Unavailable"
echo_info
fi
if [ "$DO_CNAME_RESTORE" == "1" ]
then
MESSAGE="${CNAME_CONF} from ${INPUT_CNAMEBACKUP_DATE} Selected" MESSAGE="${CNAME_CONF} from ${INPUT_CNAMEBACKUP_DATE} Selected"
echo_info echo_info
else
MESSAGE="${CNAME_CONF} Restore Unavailable"
echo_info
fi
intent_validate intent_validate
@ -109,9 +185,11 @@ function restore_gs {
MESSAGE="Stopping Pi-hole Services" MESSAGE="Stopping Pi-hole Services"
echo_stat echo_stat
sudo service pihole-FTL stop >/dev/null 2>&1 ${PH_EXEC} stop >/dev/null 2>&1
error_validate error_validate
if [ "$DO_CUSTOM_RESTORE" == "1" ]
then
MESSAGE="Restoring ${GRAVITY_FI} on $HOSTNAME" MESSAGE="Restoring ${GRAVITY_FI} on $HOSTNAME"
echo_stat echo_stat
sudo cp ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ${PIHOLE_DIR}/${GRAVITY_FI} >/dev/null 2>&1 sudo cp ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_BACKUP_DATE}-${GRAVITY_FI}.backup ${PIHOLE_DIR}/${GRAVITY_FI} >/dev/null 2>&1
@ -154,8 +232,9 @@ function restore_gs {
sudo chmod 664 ${PIHOLE_DIR}/${GRAVITY_FI} >/dev/null 2>&1 sudo chmod 664 ${PIHOLE_DIR}/${GRAVITY_FI} >/dev/null 2>&1
error_validate error_validate
fi fi
fi
if [ "$SKIP_CUSTOM" != '1' ] if [ "$DO_CUSTOM_RESTORE" == '1' ]
then then
if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ] if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_DNSBACKUP_DATE}-${CUSTOM_DNS}.backup ]
then then
@ -204,7 +283,7 @@ function restore_gs {
fi fi
fi fi
if [ "$INCLUDE_CNAME" == '1' ] if [ "$DO_CNAME_RESTORE" == '1' ]
then then
if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_CNAMEBACKUP_DATE}-${CNAME_CONF}.backup ] if [ -f ${LOCAL_FOLDR}/${BACKUP_FOLD}/${INPUT_CNAMEBACKUP_DATE}-${CNAME_CONF}.backup ]
then then

View File

@ -39,7 +39,7 @@ function update_gs {
## Show Version ## Show Version
function show_version { function show_version {
echo -e "========================================================" echo_lines
MESSAGE="${BOLD}${PROGRAM}${NC} by ${CYAN}@vmstan${NC}" MESSAGE="${BOLD}${PROGRAM}${NC} by ${CYAN}@vmstan${NC}"
echo_info echo_info
@ -72,7 +72,7 @@ function show_version {
fi fi
fi fi
echo_info echo_info
echo -e "========================================================" echo_lines
} }
function show_info() { function show_info() {
@ -87,7 +87,7 @@ function show_info() {
DEVVERSION="" DEVVERSION=""
fi fi
echo -e "========================================================" echo_lines
echo -e "${YELLOW}Local Software Versions${NC}" echo -e "${YELLOW}Local Software Versions${NC}"
echo -e "${RED}Gravity Sync${NC} ${VERSION}${DEVVERSION}" echo -e "${RED}Gravity Sync${NC} ${VERSION}${DEVVERSION}"
echo -e "${BLUE}Pi-hole${NC}" echo -e "${BLUE}Pi-hole${NC}"
@ -199,7 +199,7 @@ function show_info() {
fi fi
echo -e "Remote File Owner Settings: ${RILE_OWNER}" echo -e "Remote File Owner Settings: ${RILE_OWNER}"
echo -e "========================================================" echo_lines
} }
## Devmode Task ## Devmode Task