diff --git a/VERSION b/VERSION index 084e244..d1428a7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.6.0 \ No newline at end of file +3.6.1 \ No newline at end of file diff --git a/gravity-sync.sh b/gravity-sync.sh index 3ac67e0..9cdcca8 100755 --- a/gravity-sync.sh +++ b/gravity-sync.sh @@ -3,7 +3,7 @@ SCRIPT_START=$SECONDS # GRAVITY SYNC BY VMSTAN ##################### PROGRAM='Gravity Sync' -VERSION='3.6.0' +VERSION=$(/dev/null - then - echo -e "[${GREEN}✓${NC}] Sudo Utility Detected" - # Check Sudo - sudo --validate - if [ "$?" != "0" ] - then - echo -e "[${RED}✗${NC}] Current User (${CURRENTUSER}) Cannot SUDO" - CROSSCOUNT=$((CROSSCOUNT+1)) - LOCALADMIN="nosudo" - else - echo -e "[${GREEN}✓${NC}] Current User (${CURRENTUSER}) Has SUDO Powers" - LOCALADMIN="sudo" - fi - else - echo -e "[${RED}✗${NC}] Sudo Utility Not Detected" - CROSSCOUNT=$((CROSSCOUNT+1)) - LOCALADMIN="nosudo" - fi - - if [ "$LOCALADMIN" != "sudo" ] - then - echo -e "[${RED}✗${NC}] Current User (${CURRENTUSER}) Cannot SUDO" - CROSSCOUNT=$((CROSSCOUNT+1)) - LOCALADMIN="nosudo" - fi -fi - -echo -e "[${YELLOW}i${NC}] ${YELLOW}Scanning for Required Components${NC}" -# Check OpenSSH -if hash ssh 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] OpenSSH Binaries Detected" -else - echo -e "[${RED}✗${NC}] OpenSSH Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# Check Rsync -if hash rsync 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] RSYNC Binaries Detected" -else - echo -e "[${RED}✗${NC}] RSYNC Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# Check Sudo -if hash sudo 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] SUDO Binaries Detected" -else - echo -e "[${RED}✗${NC}] SUDO Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# Check Crontab -if hash crontab 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] CRONTAB Binaries Detected" -else - echo -e "[${RED}✗${NC}] CRONTAB Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# Check SQLITE3 -if hash sqlite3 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] SQLITE3 Binaries Detected" -else - echo -e "[${RED}✗${NC}] SQLITE3 Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# Check GIT -if hash git 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] GIT Binaries Detected" -else - echo -e "[${RED}✗${NC}] GIT Binaries Not Installed" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -echo -e "[${YELLOW}i${NC}] ${YELLOW}Performing Warp Core Diagnostics${NC}" -# Check Pihole -if hash pihole 2>/dev/null -then - echo -e "[${GREEN}✓${NC}] Local Pi-hole Install Detected" -else - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Local Pi-hole Install Detected${NC}" - # echo -e "[${PURPLE}!${NC}] ${PURPLE}Attempting To Compensate${NC}" - if hash docker 2>/dev/null - then - echo -e "[${GREEN}✓${NC}] Docker Binaries Detected" - - if [ "$LOCALADMIN" == "sudo" ] - then - FTLCHECK=$(sudo docker container ls | grep 'pihole/pihole') - elif [ "$LOCALADMIN" == "nosudo" ] - then - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Docker Pi-hole Container Detected (unable to scan)${NC}" - # CROSSCOUNT=$((CROSSCOUNT+1)) - PHFAILCOUNT=$((PHFAILCOUNT+1)) - else - FTLCHECK=$(docker container ls | grep 'pihole/pihole') - fi - - if [ "$LOCALADMIN" != "nosudo" ] - then - if [ "$FTLCHECK" != "" ] - then - echo -e "[${GREEN}✓${NC}] Pi-Hole Docker Container Detected" - else - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Docker Pi-hole Container Detected${NC}" - # CROSSCOUNT=$((CROSSCOUNT+1)) - PHFAILCOUNT=$((PHFAILCOUNT+1)) - fi - fi - elif hash podman 2>/dev/null - then - echo -e "[${GREEN}✓${NC}] Podman Binaries Detected" - - if [ "$LOCALADMIN" == "sudo" ] - then - FTLCHECK=$(sudo podman container ls | grep 'pihole/pihole') - elif [ "$LOCALADMIN" == "nosudo" ] - then - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Podman Pi-hole Container Detected (unable to scan)${NC}" - # CROSSCOUNT=$((CROSSCOUNT+1)) - PHFAILCOUNT=$((PHFAILCOUNT+1)) - else - FTLCHECK=$(podman container ls | grep 'pihole/pihole') - fi - - if [ "$LOCALADMIN" != "nosudo" ] - then - if [ "$FTLCHECK" != "" ] - then - echo -e "[${GREEN}✓${NC}] Pi-Hole Podman Container Detected" - else - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Podman Pi-hole Container Detected${NC}" - # CROSSCOUNT=$((CROSSCOUNT+1)) - PHFAILCOUNT=$((PHFAILCOUNT+1)) - fi - fi - else - # echo -e "[${RED}✗${NC}] No Local Pi-hole Install Detected" - echo -e "[${PURPLE}!${NC}] ${PURPLE}No Docker Pi-hole Alternative Detected${NC}" - # CROSSCOUNT=$((CROSSCOUNT+1)) - PHFAILCOUNT=$((PHFAILCOUNT+1)) - fi -fi - -if [ "$PHFAILCOUNT" != "0" ] -then - echo -e "[${RED}✗${NC}] No Usable Pi-hole Install Detected" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -# echo -e "[${YELLOW}i${NC}] ${YELLOW}Target Folder Analysis${NC}" -if [ "$GS_INSTALL" == "secondary" ] -then - if [ "$LOCALADMIN" == "sudo" ] - then - THISDIR=$(pwd) - if [ "$THISDIR" != "$HOME" ] - then - echo -e "[${RED}✗${NC}] ${CURRENTUSER} Must Install to $HOME" - echo -e "[${PURPLE}!${NC}] ${PURPLE}Use 'root' Account to Install in $THISDIR${NC}" - CROSSCOUNT=$((CROSSCOUNT+1)) - fi - fi -fi - -if [ -d gravity-sync ] -then - echo -e "[${RED}✗${NC}] Folder gravity-sync Already Exists" - echo -e "[${PURPLE}!${NC}] ${PURPLE}Use './gravity-sync.sh update' to Update Instead${NC}" - CROSSCOUNT=$((CROSSCOUNT+1)) -fi - -echo -e "[${YELLOW}i${NC}] ${YELLOW}Status Report${NC}" -# Combine Outputs -if [ "$CROSSCOUNT" != "0" ] -then - echo -e "[${RED}*${NC}] ${RED}${CROSSCOUNT} Critical Issue(s) Detected${NC}" - echo -e "[${PURPLE}!${NC}] ${PURPLE}Please Correct Failures and Re-Execute${NC}" - echo -e "[${YELLOW}i${NC}] ${YELLOW}Installation Exiting (without changes)${NC}" -else - echo -e "[${YELLOW}i${NC}] ${YELLOW}Executing Gravity Sync Deployment${NC}" - - if [ "$LOCALADMIN" == "sudo" ] - then - echo -e "[${BLUE}>${NC}] Creating Sudoers.d File" - touch /tmp/gs-nopasswd.sudo - echo -e "${CURRENTUSER} ALL=(ALL) NOPASSWD: ALL" > /tmp/gs-nopasswd.sudo - sudo install -m 0440 /tmp/gs-nopasswd.sudo /etc/sudoers.d/gs-nopasswd - fi - - if [ "$GS_INSTALL" != "secondary" ] - then - echo -e "[${YELLOW}i${NC}] Gravity Sync Preperation Complete" - echo -e "[${YELLOW}i${NC}] Execute on Installer on Secondary" - echo -e "[${YELLOW}i${NC}] Check Documentation for Instructions" - echo -e "[${YELLOW}i${NC}] Installation Exiting (without changes)" - else - echo -e "[${BLUE}>${NC}] Creating Gravity Sync Directories" - if [ "$GS_DEV" != "" ] - then - git clone -b ${GS_DEV} https://github.com/vmstan/gravity-sync.git - else - git clone https://github.com/vmstan/gravity-sync.git - fi - echo -e "[${BLUE}>${NC}] Starting Gravity Sync Configuration" - echo -e "========================================================" - ./gravity-sync/gravity-sync.sh configure <&1 - # echo -e "[${YELLOW}i${NC}] This host is now prepared to configure Gravity Sync!" - # echo -e "[${YELLOW}i${NC}] Please run './gravity-sync configure' from $HOME/gravity-sync" - # echo -e "[${YELLOW}i${NC}] Visit https://github.com/vmstan/gravity-sync for more instructions." - fi - -fi - -exit \ No newline at end of file