* version change

* Nova

* No-config function

* Markdown cleanup

* Create gs-core file

* correct missing includes via cron

Co-authored-by: Michael Stanclift <vmstan@Sovereign.vmstan.net>
Co-authored-by: Michael Stanclift <vmstan@sovereign.local>
This commit is contained in:
Michael Stanclift 2020-10-10 11:30:40 -05:00 committed by GitHub
parent c1b71ec996
commit 7d09218524
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 123 additions and 102 deletions

4
.nova/Configuration.json Normal file
View File

@ -0,0 +1,4 @@
{
"editor.default_syntax" : "shell",
"workspace.name" : "Gravity Sync"
}

View File

@ -59,7 +59,7 @@ Starting with version 2.0, Gravity Sync will attempt to sync the Adlist database
Minimal preperation is required (as of version 2.2.3) on your primary Pi-hole. Minimal preperation is required (as of version 2.2.3) on your primary Pi-hole.
Login to your *primary* Pi-hole, and run the following command: Login to your _primary_ Pi-hole, and run the following command:
```bash ```bash
export GS_INSTALL=primary && curl -sSL https://raw.githubusercontent.com/vmstan/gravity-sync/master/prep/gs-install.sh | bash export GS_INSTALL=primary && curl -sSL https://raw.githubusercontent.com/vmstan/gravity-sync/master/prep/gs-install.sh | bash
@ -67,13 +67,13 @@ export GS_INSTALL=primary && curl -sSL https://raw.githubusercontent.com/vmstan/
This will verify you have everything necessary to use Gravity Sync. It will also add a passwordless sudo configuration file for the current user. The installer will then exit, and direct you to proceed to the secondary Pi-hole. This will verify you have everything necessary to use Gravity Sync. It will also add a passwordless sudo configuration file for the current user. The installer will then exit, and direct you to proceed to the secondary Pi-hole.
After you have completed this step, log out of the *primary* Pi-hole. After you have completed this step, log out of the _primary_ Pi-hole.
### Secondary Pi-Hole ### Secondary Pi-Hole
From this point forward, all operations will take place on your secondary Pi-hole. From this point forward, all operations will take place on your secondary Pi-hole.
Login to your *secondary* Pi-hole, and run the following command: Login to your _secondary_ Pi-hole, and run the following command:
```bash ```bash
export GS_INSTALL=secondary && curl -sSL https://raw.githubusercontent.com/vmstan/gravity-sync/master/prep/gs-install.sh | bash export GS_INSTALL=secondary && curl -sSL https://raw.githubusercontent.com/vmstan/gravity-sync/master/prep/gs-install.sh | bash
@ -85,7 +85,7 @@ Proceed to the Configuration section.
## Configuration ## Configuration
After you install Gravity Sync to your *secondary Pi-hole* you will need to create a configuration file. After you install Gravity Sync to your _secondary Pi-hole_ you will need to create a configuration file.
```bash ```bash
cd $HOME/gravity-sync cd $HOME/gravity-sync

View File

@ -1 +1 @@
3.0.1 3.0.2

View File

@ -19,6 +19,12 @@ Enjoy!
- Minor shuffle of `gravity-sync.sh` contents. - Minor shuffle of `gravity-sync.sh` contents.
- Clarify installation requirements in `README.md`. - Clarify installation requirements in `README.md`.
- Fixes issues with permissions on `gravity.db` after push operations. - Fixes issues with permissions on `gravity.db` after push operations.
- Fixes missing script startup output during `dev` operation.
#### 3.0.2
- Realigned EPS conduits, they overheat if you leave them pointed the same way for too long.
- Corrected error when running via crontab where includes directory was not properly sourced.
## 2.2 ## 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.0.1' VERSION='3.0.2'
# Execute from the home folder of the user who owns it (ex: 'cd ~/gravity-sync') # Execute from the home folder of the user who owns it (ex: 'cd ~/gravity-sync')
# For documentation or downloading updates visit https://github.com/vmstan/gravity-sync # For documentation or downloading updates visit https://github.com/vmstan/gravity-sync
@ -62,95 +62,41 @@ SSH_PKIF='.ssh/id_rsa' # default local SSH key
############################################## ##############################################
# Import Color/Message Includes # Import Color/Message Includes
source includes/gs-colors.sh source $HOME/${LOCAL_FOLDR}/includes/gs-colors.sh
# FUNCTION DEFINITIONS ####################### # FUNCTION DEFINITIONS #######################
# Import Settings # Core Functions
function import_gs { source $HOME/${LOCAL_FOLDR}/includes/gs-core.sh
MESSAGE="Importing ${CONFIG_FILE} Settings"
echo -en "${STAT} $MESSAGE"
if [ -f $HOME/${LOCAL_FOLDR}/${CONFIG_FILE} ]
then
source $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}
error_validate
# MESSAGE="Targeting ${REMOTE_USER}@${REMOTE_HOST}" # Gravity Replication Functions
# echo_info source $HOME/${LOCAL_FOLDR}/includes/gs-compare.sh
source $HOME/${LOCAL_FOLDR}/includes/gs-pull.sh
# detect_ssh source $HOME/${LOCAL_FOLDR}/includes/gs-push.sh
else source $HOME/${LOCAL_FOLDR}/includes/gs-smart.sh
echo_fail source $HOME/${LOCAL_FOLDR}/includes/gs-restore.sh
source $HOME/${LOCAL_FOLDR}/includes/gs-backup.sh
MESSAGE="${CONFIG_FILE} Missing"
echo_info
TASKTYPE='CONFIG'
config_generate
fi
}
# Invalid Tasks
function task_invalid {
echo_fail
list_gs_arguments
}
# Error Validation
function error_validate {
if [ "$?" != "0" ]
then
echo_fail
exit 1
else
echo_good
fi
}
# Standard Output
function start_gs {
MESSAGE="${PROGRAM} ${VERSION} Executing"
echo_info
import_gs
MESSAGE="Evaluating Arguments"
echo_stat
if [ "${ROOT_CHECK_AVOID}" != "1" ]
then
root_check
fi
}
# Gravity Core Functions
source includes/gs-compare.sh
source includes/gs-pull.sh
source includes/gs-push.sh
source includes/gs-smart.sh
source includes/gs-restore.sh
source includes/gs-backup.sh
# Hashing & SSH Functions # Hashing & SSH Functions
source includes/gs-hashing.sh source $HOME/${LOCAL_FOLDR}/includes/gs-hashing.sh
source includes/gs-ssh.sh source $HOME/${LOCAL_FOLDR}/includes/gs-ssh.sh
# Logging Functions # Logging Functions
source includes/gs-logging.sh source $HOME/${LOCAL_FOLDR}/includes/gs-logging.sh
# Validation Functions # Validation Functions
source includes/gs-validate.sh source $HOME/${LOCAL_FOLDR}/includes/gs-validate.sh
source includes/gs-intent.sh source $HOME/${LOCAL_FOLDR}/includes/gs-intent.sh
source includes/gs-root.sh source $HOME/${LOCAL_FOLDR}/includes/gs-root.sh
# Configuration Management # Configuration Management
source includes/gs-config.sh source $HOME/${LOCAL_FOLDR}/includes/gs-config.sh
source includes/gs-update.sh source $HOME/${LOCAL_FOLDR}/includes/gs-update.sh
source includes/gs-automate.sh source $HOME/${LOCAL_FOLDR}/includes/gs-automate.sh
source includes/gs-purge.sh source $HOME/${LOCAL_FOLDR}/includes/gs-purge.sh
# Exit Codes # Exit Codes
source includes/gs-exit.sh source $HOME/${LOCAL_FOLDR}/includes/gs-exit.sh
# SCRIPT EXECUTION ########################### # SCRIPT EXECUTION ###########################
@ -191,12 +137,7 @@ case $# in
start_gs start_gs
task_cron ;; task_cron ;;
config|configure) config|configure)
MESSAGE="${PROGRAM} ${VERSION} Executing" start_gs_noconfig
echo_info
MESSAGE="Evaluating Arguments"
echo_stat
task_configure ;; task_configure ;;
auto|automate) auto|automate)
start_gs start_gs
@ -209,10 +150,7 @@ case $# in
task_purge ;; task_purge ;;
sudo) sudo)
start_gs start_gs
task_sudo task_sudo ;;
exit_withchange
;;
*) *)
start_gs start_gs
task_invalid ;; task_invalid ;;

71
includes/gs-core.sh Normal file
View File

@ -0,0 +1,71 @@
# GRAVITY SYNC BY VMSTAN #####################
# gs-core.sh #################################
# For documentation or downloading updates visit https://github.com/vmstan/gravity-sync
# This code is called from the main gravity-sync.sh file and should not execute directly!
## Import Settings
function import_gs {
MESSAGE="Importing ${CONFIG_FILE} Settings"
echo -en "${STAT} $MESSAGE"
if [ -f $HOME/${LOCAL_FOLDR}/${CONFIG_FILE} ]
then
source $HOME/${LOCAL_FOLDR}/${CONFIG_FILE}
error_validate
# MESSAGE="Targeting ${REMOTE_USER}@${REMOTE_HOST}"
# echo_info
# detect_ssh
else
echo_fail
MESSAGE="${CONFIG_FILE} Missing"
echo_info
TASKTYPE='CONFIG'
config_generate
fi
}
## Invalid Tasks
function task_invalid {
echo_fail
list_gs_arguments
}
## Error Validation
function error_validate {
if [ "$?" != "0" ]
then
echo_fail
exit 1
else
echo_good
fi
}
# Standard Output
function start_gs {
MESSAGE="${PROGRAM} ${VERSION} Executing"
echo_info
import_gs
MESSAGE="Evaluating Arguments"
echo_stat
if [ "${ROOT_CHECK_AVOID}" != "1" ]
then
root_check
fi
}
# Standard Output No Config
function start_gs_noconfig {
MESSAGE="${PROGRAM} ${VERSION} Executing"
echo_info
MESSAGE="Evaluating Arguments"
echo_stat
}

View File

@ -22,6 +22,8 @@ function task_sudo {
sudo install -m 0440 $HOME/${LOCAL_FOLDR}/templates/gs-nopasswd.sudo /etc/sudoers.d/gs-nopasswd sudo install -m 0440 $HOME/${LOCAL_FOLDR}/templates/gs-nopasswd.sudo /etc/sudoers.d/gs-nopasswd
error_validate error_validate
exit_withchange
} }
## Root Check ## Root Check
@ -32,7 +34,7 @@ function root_check {
MESSAGE="${MESSAGE} ${TASKTYPE}" MESSAGE="${MESSAGE} ${TASKTYPE}"
echo_fail echo_fail
MESSAGE="${PROGRAM} Must Not Run as Root" MESSAGE="${PROGRAM} Should Not Run As 'root'"
echo_warn echo_warn
exit_nochange exit_nochange