gravity-sync/gravity-sync.sh

438 lines
12 KiB
Bash
Raw Normal View History

4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
#!/usr/bin/env bash
2020-05-21 18:00:42 +00:00
2020-05-22 17:18:16 +00:00
# GRAVITY SYNC BY VMSTAN #####################
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
# GS 3.x to 4.0 Upgrade Utility ##############
# Run only to upgrade your existing Gravity Sync 3.x installation to 4.0 format
2020-05-23 23:37:08 +00:00
PROGRAM='Gravity Sync'
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
GS_FILEPATH=$(realpath $0)
LOCAL_FOLDR=$(dirname $GS_FILEPATH)
GS_ETC_PATH="/etc/gravity-sync"
GS_GRAVITY_FI_MD5_LOG='gs-gravity.md5'
GS_CUSTOM_DNS_MD5_LOG='gs-clist.md5'
GS_CNAME_CONF_MD5_LOG='gs-cname.md5'
OS_DAEMON_PATH='/etc/systemd/system'
## Script Colors
RED='\033[0;91m'
GREEN='\033[0;92m'
CYAN='\033[0;96m'
YELLOW='\033[0;93m'
PURPLE='\033[0;95m'
BLUE='\033[0;94m'
BOLD='\033[1m'
NC='\033[0m'
## Message Codes
FAIL="${RED}${NC}"
WARN="${PURPLE}!${NC}"
GOOD="${GREEN}${NC}"
STAT="${CYAN}${NC}"
INFO="${YELLOW}»${NC}"
INF1="${CYAN}${NC}"
NEED="${BLUE}?${NC}"
LOGO="${PURPLE}${NC}"
## Echo Stack
### Informative
function echo_info {
echo -e "${INFO} ${YELLOW}${MESSAGE}${NC}"
}
function echo_prompt {
echo -e "${INF1} ${CYAN}${MESSAGE}${NC}"
}
### Warning
function echo_warn {
echo -e "${WARN} ${PURPLE}${MESSAGE}${NC}"
}
### Executing
function echo_stat {
echo -en "${STAT} ${MESSAGE}"
}
### Success
function echo_good {
echo -e "\r${GOOD} ${MESSAGE}"
}
### Success
function echo_good_clean {
echo -e "\r${GOOD} ${MESSAGE}"
}
### Failure
function echo_fail {
echo -e "\r${FAIL} ${MESSAGE}"
}
### Request
function echo_need {
echo -en "${NEED} ${BOLD}${MESSAGE}:${NC} "
}
### Indent
function echo_over {
echo -e " ${MESSAGE}"
}
### Gravity Sync Logo
function echo_grav {
echo -e "${LOGO} ${BOLD}${MESSAGE}${NC}"
}
### Lines
function echo_blank {
echo -e ""
}
## Error Validation
function error_validate {
if [ "$?" != "0" ]; then
echo_fail
exit 1
else
echo_good
fi
}
function start_gs_no_config {
MESSAGE="Gravity Sync 3.x to 4.0 Migration Utility"
echo_grav
}
function check_old_version {
MESSAGE="Checking for 3.x Configuration File"
echo_stat
if [ -f settings/gravity-sync.conf ]; then
echo_good
else
echo_fail
exit 1
fi
}
function install_new_gravity {
MESSAGE="Installing Gravity Sync 4.0"
echo_info
if [ -d /etc/gravity-sync/.gs ]; then
MESSAGE="Removing existing GitHub cache"
echo_stat
sudo rm -fr /etc/gravity-sync/.gs
error_validate
fi
if [ ! -d /etc/gravity-sync ]; then
MESSAGE="Creating new configuration directory"
echo_stat
sudo mkdir /etc/gravity-sync
error_validate
fi
MESSAGE="Validating configuration directory permissions"
echo_stat
sudo chmod 775 /etc/gravity-sync
error_validate
if [ -f /usr/local/bin/gravity-sync ]; then
MESSAGE="Removing old Gravity Sync binary"
echo_stat
sudo rm -f /usr/local/bin/gravity-sync
error_validate
fi
MESSAGE="Creating new GitHub cache"
echo_prompt
sudo git clone https://github.com/vmstan/gravity-sync.git /etc/gravity-sync/.gs
# MESSAGE="Enabling beta updates"
# echo_stat
# sudo touch /etc/gravity-sync/.gs/dev
# echo -e "BRANCH='origin/4.0.0'" | sudo tee /etc/gravity-sync/.gs/dev 1> /dev/null
# error_validate
sudo cp /etc/gravity-sync/.gs/gravity-sync /usr/local/bin
}
function upgrade_to_4 {
MESSAGE="Migrating Previous Configuration"
echo_info
2022-04-12 00:57:28 +00:00
CURRENTUSER=$(whoami)
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
MESSAGE="Transferring SSH keys"
2022-04-12 00:57:28 +00:00
echo_stat
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
sudo cp $HOME/.ssh/id_rsa /etc/gravity-sync/gravity-sync.rsa
sudo cp $HOME/.ssh/id_rsa.pub /etc/gravity-sync/gravity-sync.rsa.pub
error_validate
2022-04-12 00:57:28 +00:00
MESSAGE="Setting SSH key owner"
echo_stat
sudo chown ${CURRENTUSER}:${CURRENTUSER} /etc/gravity-sync/gravity-sync.rsa
sudo chown ${CURRENTUSER}:${CURRENTUSER} /etc/gravity-sync/gravity-sync.rsa.pub
error_validate
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
REMOTE_HOST=''
REMOTE_USER=''
PIHOLE_DIR=''
RIHOLE_DIR=''
DNSMAQ_DIR=''
RNSMAQ_DIR=''
FILE_OWNER=''
RILE_OWNER=''
DOCKER_CON=''
ROCKER_CON=''
MESSAGE="Reviewing old configuration file settings"
echo_stat
source settings/gravity-sync.conf
error_validate
MESSAGE="Creating new configuration file from template"
echo_stat
sudo cp /etc/gravity-sync/.gs/templates/gravity-sync.conf.example /etc/gravity-sync/gravity-sync.conf
error_validate
LOCAL_PIHOLE_DIRECTORY=${PIHOLE_DIR}
REMOTE_PIHOLE_DIRECTORY=${RIHOLE_DIR}
LOCAL_DNSMASQ_DIRECTORY=${DNSMAQ_DIR}
REMOTE_DNSMASQ_DIRECTORY=${RNSMAQ_DIR}
LOCAL_FILE_OWNER=${FILE_OWNER}
REMOTE_FILE_OWNER=${RILE_OWNER}
LOCAL_DOCKER_CONTAINER=${DOCKER_CON}
REMOTE_DOCKER_CONTAINER=${ROCKER_CON}
MESSAGE="Migrating remote host settings"
echo_stat
sudo sed -i "/REMOTE_HOST=''/c\REMOTE_HOST='${REMOTE_HOST}'" /etc/gravity-sync/gravity-sync.conf
error_validate
MESSAGE="Migrating remote user settings"
echo_stat
sudo sed -i "/REMOTE_USER=''/c\REMOTE_USER='${REMOTE_USER}'" /etc/gravity-sync/gravity-sync.conf
error_validate
if [ "${LOCAL_PIHOLE_DIRECTORY}" == '' ] || [ "${LOCAL_PIHOLE_DIRECTORY}" == '/etc/pihole' ]; then
MESSAGE="Defaulting local Pi-hole directory setting"
echo_good_clean
else
MESSAGE="Migrating local Pi-hole directory setting"
echo_stat
sudo sed -i "/LOCAL_PIHOLE_DIRECTORY=''/c\LOCAL_PIHOLE_DIRECTORY='${LOCAL_PIHOLE_DIRECTORY}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${REMOTE_PIHOLE_DIRECTORY}" == '' ] || [ "${REMOTE_PIHOLE_DIRECTORY}" == '/etc/pihole' ]; then
MESSAGE="Defaulting remote Pi-hole directory setting"
echo_good_clean
else
MESSAGE="Migrating remote Pi-hole directory setting"
echo_stat
sudo sed -i "/REMOTE_PIHOLE_DIRECTORY=''/c\REMOTE_PIHOLE_DIRECTORY='${REMOTE_PIHOLE_DIRECTORY}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${LOCAL_DNSMASQ_DIRECTORY}" == '' ] || [ "${LOCAL_DNSMASQ_DIRECTORY}" == '/etc/dnsmasq.d' ]; then
MESSAGE="Defaulting local DNSMASQ directory setting"
echo_good_clean
else
MESSAGE="Migrating local DNSMASQ directory setting"
echo_stat
sudo sed -i "/LOCAL_DNSMASQ_DIRECTORY=''/c\LOCAL_DNSMASQ_DIRECTORY='${LOCAL_DNSMASQ_DIRECTORY}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${REMOTE_DNSMASQ_DIRECTORY}" == '' ] || [ "${REMOTE_DNSMASQ_DIRECTORY}" == '/etc/dnsmasq.d' ]; then
MESSAGE="Defaulting remote DNSMASQ directory setting"
echo_good_clean
else
MESSAGE="Migrating remote DNSMASQ directory setting"
echo_stat
sudo sed -i "/REMOTE_DNSMASQ_DIRECTORY=''/c\REMOTE_DNSMASQ_DIRECTORY='${REMOTE_DNSMASQ_DIRECTORY}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${LOCAL_FILE_OWNER}" == '' ]; then
MESSAGE="Defaulting local file owner setting"
echo_good_clean
else
MESSAGE="Migrating local file owner setting"
echo_stat
sudo sed -i "/LOCAL_FILE_OWNER=''/c\LOCAL_FILE_OWNER='${LOCAL_FILE_OWNER}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${REMOTE_FILE_OWNER}" == '' ]; then
MESSAGE="Defaulting remote file owner setting"
echo_good_clean
else
MESSAGE="Migrating remote file owner setting"
echo_stat
sudo sed -i "/REMOTE_FILE_OWNER=''/c\REMOTE_FILE_OWNER='${REMOTE_FILE_OWNER}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${LOCAL_DOCKER_CONTAINER}" == '' ] || [ "${LOCAL_DOCKER_CONTAINER}" == 'pihole' ]; then
MESSAGE="Defaulting local Pi-hole container setting"
echo_good_clean
else
MESSAGE="Migrating local Pi-hole container setting"
echo_stat
sudo sed -i "/LOCAL_DOCKER_CONTAINER=''/c\LOCAL_DOCKER_CONTAINER='${LOCAL_DOCKER_CONTAINER}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
if [ "${REMOTE_DOCKER_CONTAINER}" == '' ] || [ "${REMOTE_DOCKER_CONTAINER}" == 'pihole' ]; then
MESSAGE="Defaulting remote Pi-hole container setting"
echo_good_clean
else
MESSAGE="Migrating local Pi-hole container setting"
echo_stat
sudo sed -i "/REMOTE_DOCKER_CONTAINER=''/c\REMOTE_DOCKER_CONTAINER='${REMOTE_DOCKER_CONTAINER}'" /etc/gravity-sync/gravity-sync.conf
error_validate
fi
MESSAGE="Migrating task history"
echo_stat
sudo cp logs/gravity-sync.log /etc/gravity-sync/gs-sync.log
error_validate
MESSAGE="Migrating hashing tables"
echo_stat
if [ -f "logs/gravity-sync.md5" ]; then
REMOTE_DB_MD5=$(sed "1q;d" logs/gravity-sync.md5)
LOCAL_DB_MD5=$(sed "2q;d" logs/gravity-sync.md5)
REMOTE_CL_MD5=$(sed "3q;d" logs/gravity-sync.md5)
LOCAL_CL_MD5=$(sed "4q;d" logs/gravity-sync.md5)
REMOTE_CN_MD5=$(sed "5q;d" logs/gravity-sync.md5)
LOCAL_CN_MD5=$(sed "6q;d" logs/gravity-sync.md5)
echo -e ${REMOTE_DB_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_GRAVITY_FI_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_DB_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_GRAVITY_FI_MD5_LOG} 1> /dev/null
echo -e ${REMOTE_CL_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CUSTOM_DNS_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_CL_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CUSTOM_DNS_MD5_LOG} 1> /dev/null
echo -e ${REMOTE_CN_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CNAME_CONF_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_CN_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CNAME_CONF_MD5_LOG} 1> /dev/null
else
REMOTE_DB_MD5="0"
LOCAL_DB_MD5="0"
REMOTE_CL_MD5="0"
LOCAL_CL_MD5="0"
REMOTE_CN_MD5="0"
LOCAL_CN_MD5="0"
echo -e ${REMOTE_DB_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_GRAVITY_FI_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_DB_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_GRAVITY_FI_MD5_LOG} 1> /dev/null
echo -e ${REMOTE_CL_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CUSTOM_DNS_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_CL_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CUSTOM_DNS_MD5_LOG} 1> /dev/null
echo -e ${REMOTE_CN_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CNAME_CONF_MD5_LOG} 1> /dev/null
echo -e ${LOCAL_CN_MD5} | sudo tee -a ${GS_ETC_PATH}/${GS_CNAME_CONF_MD5_LOG} 1> /dev/null
fi
error_validate
}
function remove_old_version {
MESSAGE="Removing Old Version & Settings"
echo_info
if hash crontab 2>/dev/null; then
MESSAGE="Clearing automation from crontab"
echo_stat
crontab -l > cronjob-old.tmp
sed "/gravity-sync.sh/d" cronjob-old.tmp > cronjob-new.tmp
crontab cronjob-new.tmp
error_validate
fi
kill_automation_service
if [ -f /etc/bash.bashrc ]; then
MESSAGE="Cleaning up bash.bashrc"
echo_info
sudo sed -i "/gravity-sync.sh/d" /etc/bash.bashrc
error_validate
fi
MESSAGE="Removing old Gravity Sync folder"
echo_stat
sudo rm -fr ${LOCAL_FOLDR}
error_validate
}
function kill_automation_service {
2022-04-12 13:05:35 +00:00
if systemctl is-active --quiet gravity-sync.timer; then
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
MESSAGE="Stopping ${PROGRAM} timer"
echo_stat
sudo systemctl stop gravity-sync
error_validate
MESSAGE="Disabling ${PROGRAM} automation service"
echo_stat
sudo systemctl disable gravity-sync --quiet
error_validate
MESSAGE="Removing systemd timer"
echo_stat
sudo rm -f ${OS_DAEMON_PATH}/gravity-sync.timer
error_validate
MESSAGE="Removing systemd service"
echo_stat
sudo rm -f ${OS_DAEMON_PATH}/gravity-sync.service
error_validate
MESSAGE="Reloading systemd daemon"
echo_stat
sudo systemctl daemon-reload --quiet
error_validate
fi
}
function end_migration {
MESSAGE="Migration Complete"
echo_info
}
# SCRIPT EXECUTION ###########################
2020-05-21 18:00:42 +00:00
case $# in
2020-12-31 02:45:47 +00:00
0)
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
start_gs_no_config
check_old_version
install_new_gravity
upgrade_to_4
remove_old_version
end_migration ;;
2020-12-31 02:45:47 +00:00
1)
case $1 in
*)
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
start_gs_no_config
check_old_version
install_new_gravity
upgrade_to_4
remove_old_version
end_migration ;;
2020-12-31 02:45:47 +00:00
esac
;;
*)
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
start_gs_no_config
check_old_version
install_new_gravity
upgrade_to_4
remove_old_version
end_migration ;;
2.2.0 (#81) * import config file before executing * show_target function * git * Sync back (#72) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * 2.1.7 (#70) * import config file before executing * show_target function * git Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * Sync back (#73) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * spellcheck is awesome * I speel reel gurd * Spelling sucks * Update remote backup timeout to 60 This will avoid [ FAIL ] Performing Backup of Remote gravity.db * readme updates * spelling * extra fi * config cleanup * hide if dbclient installed but also ssh * move backup in config * backup process in configure * 2.2.0 beta 1 (#78) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * import config file before executing * show_target function * git * Sync back (#72) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * 2.1.7 (#70) * import config file before executing * show_target function * git Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * spellcheck is awesome * I speel reel gurd * Spelling sucks * Update remote backup timeout to 60 This will avoid [ FAIL ] Performing Backup of Remote gravity.db * readme updates * spelling * extra fi * config cleanup * hide if dbclient installed but also ssh * move backup in config * backup process in configure Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> Co-authored-by: Sungray <ced.lapage@gmail.com> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.local> * THE PURGE * PURGE IT * PURRRRRRGE * Purged Release * if beta * pihole note * silence git output * 2.2.0 beta 2 (#79) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * import config file before executing * show_target function * git * Sync back (#72) * 2.1.6 beta 1 (#65) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> * 2.1.6 beta 2 (#67) * select different files for restore * star trek reference * Log backup jobs * color restore * ping avoid and custom ssh prompts * z variable * or * [] * new method for defaults * variables matter * or this? * making it specific * adv conf: add ROOT_CHECK_AVOID for container. (#64) * adv conf: add ROOT_CHECK_AVOID for container. import_gs only once at start * allow parameters for automation option Co-authored-by: Michael Stanclift <mstanclift@vmware.com> * Post PR cleanup * Thanks for fbourqui * readjusts import_gs Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * 2.1.7 (#70) * import config file before executing * show_target function * git Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> * spellcheck is awesome * I speel reel gurd * Spelling sucks * Update remote backup timeout to 60 This will avoid [ FAIL ] Performing Backup of Remote gravity.db * readme updates * spelling * extra fi * config cleanup * hide if dbclient installed but also ssh * move backup in config * backup process in configure * THE PURGE * PURGE IT * PURRRRRRGE * Purged Release * if beta * pihole note * silence git output Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> Co-authored-by: Sungray <ced.lapage@gmail.com> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.local> * Installation instructions. * bash * words * purge now updates * purge reword * more warnigns * 2.2.0 Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.vmstan.net> Co-authored-by: fbourqui <fbourqui@yahoo.com> Co-authored-by: Sungray <ced.lapage@gmail.com> Co-authored-by: Michael Stanclift <vmstan@MS-MacBook.local>
2020-07-21 05:14:20 +00:00
esac
4.0.0 (#317) * 4.0.0 * drop .sh * chmod +x * change pull locations * push * change folders * cleanup extensions * error with cname push * backup purge redone * back to the CORE! * remove references to backup folder * rename pihole container image variable * rename pihole binary variables * rename docker binary variables * rename pihole dir variables * data names * remote and local * DNSMASQ folders * remove dnsmasq * more variable renames * fix config location * fix import path * validate gs folder fix * remove references to LOCAL_FOLDR * updater moving into place * create update script * " * change context? * remove git check * add ( back * Fix automation path * replace standalone SQLite with FTL * remote * adjust docker folder locations * fix remote location * remove sqlite validation * remove all references to cron * config rewrite * soruce config file * remote file not dir * hidden figures * config file * remove references to dropbear * remove backup cleanup from most tasks * remove gs folder validation * remove ssh detection * static set ssh * id_rsa * extra line * echo lines * retain previous config file * isolinear * ∞ * rearrange info * remove bash path * check replication status * check timer instead * dev mode against new repo location * rewrite purge * path * add default file owner back * simpler * /usr/bin/bash * fix ftl binary location * whoami * remote FTL * don't delete from remote * purge it * remove path not name * sudo tee * tee off instead of echo out * sudo sudo sudo * sudo all the things * Even more sudo * how much more can you sudo * change keyfile permissions * remote/local * all the sudo * sudo in your rsync * pull to tmp * sudo copied * silence tee * New keyfile creation method * send hash to the other side * saving hashes * directions are hard * reverse hash for the other side * remote ping test from config * further randomize replication times * rerandom * fix bash call to update.sh * Remove now-unused UI code * remove legacy distro check code * UI FILE PERMISSION spelling * read -r * GS_INTENT_VALIDATE * remove intent validation from push * cleanup tasks * remove cname opt-out * remove DNS options * rename validation and set functions * import_gs * replace primary/local * relocate file owner variables * set variable for /tmp * just set file permissions don't bother checking * set file permissions * remove extra message * md5 variable renames * replacing pri/sec variable names in smart sync * .gsbackup replaced * cleanup then * removing compensation * More primary and secondary references removed * README update * Update README.md * new md5 variable * multiple md5 hash logs * gravity db listed twice * md52 deletion at remote * rename on sync * move after send * try try again * this should work * force it * now for something completely different * remove ; * KISS * KISS2 * fix hashing lookups * set remote hash permissions * vary info output * remove unused functions * new docs uploaded for publishing to wiki * new system requirements * words * host * rewrite install instructions * rewrite install instructions * rewrite all the thing * massive variable renames * building out dockerfile * switch to photon * change all if then style to single line * cd || exit * reformat math * ${SSHPASSWORD} references removed * OS_SSH_CMD set in variables * cleanup function calls * remove old root_check function * cleaning up more variables * more variable cleanup * Line * rewrite all of pihole detection * echo_good * >/dev/null 2>&1 * detecting local message * sed? * | sed 's/\s.*$//' * fix sed * no more whiches * 2>/dev/null some more * massive config rewrite for advanced workflow * fix prompt * output remote images * echo again * remote again * cats? * detect container locations * fix space * rewrite remote detection * remote not local * don't delete remote * exec then rsync * move lines * enclose * dont var * daft * quotes * remove variable * run you booger * REMOTE * remove echo_lines * no config for more commands * no config again * shellcheck * comment cleanup * spell check is wonderful * change docker container name output * escape more quotes * simpler command for remote side * scape that? * maybe less, i dunno * try both lists again * change spacing and line breaks * streamline status icons for configuration * retrieving remote settings * error_validate * disable task * fix disable task * detect_gs_peer * task_purge doesn't use config * remote message * fallback * " " * comments * add monitor mode * Adds .sh script back as upgrader * upgrader in old script * reverse logic * pretty upgrade script * migration complete * change template directory * check for crontab hash * user not host * silence hash for crontab check * warn * warning * reword config ending * missing " * os-release * blue * disable automation doesn't require config * move stop * signing off on 4.0
2022-04-11 22:06:09 +00:00
# END OF SCRIPT ##############################