mirror of
https://github.com/vmstan/gravity-sync.git
synced 2024-08-30 18:22:11 +00:00
* start 3.6 * Remove backup retention reference * dbclient_warning removed * remove extra linebreaks * remove backup task * Increased backup and integrity timeouts to 240 * Remove brackets from message codes * Arrow for info * Different arrow * Ain't gonna restore no more * Abortion aborted * format change for config test * All kinds of yes and no * echo_grav * Move advanced to the end * removed custom ssh, ping check and port options from wizard * primary address changes * rework user input * good clean fun * smaller version text * less info * Set push commands to default 240 second timeout * Remove reference to backup and restore tasks from log output * Remove backup refs * Move UI elements over to gs-ui * Move ICMP to UI * More UI * More UI * UI changes * Add end config * Spaces and such * MOre UI * UI * UI UI UI * UI UI * echo_blue * echo_blue too * switch * fip flop * Too blue * Fix path being run * = * Remove () * continued cleaning * Almost done rewriting config * switch CNAME defaults * Add CNAME function
494 lines
16 KiB
Bash
494 lines
16 KiB
Bash
# GRAVITY SYNC BY VMSTAN #####################
|
|
# gs-config.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!
|
|
|
|
## Configure Task
|
|
function task_configure {
|
|
TASKTYPE='CONFIGURE'
|
|
MESSAGE="${MESSAGE}: ${TASKTYPE}"
|
|
echo_good
|
|
|
|
relocate_config_gs
|
|
|
|
if [ -f ${LOCAL_FOLDR}/settings/${CONFIG_FILE} ]
|
|
then
|
|
config_delete
|
|
else
|
|
config_generate
|
|
fi
|
|
|
|
create_alias
|
|
exit_withchange
|
|
}
|
|
|
|
## Generate New Configuration
|
|
function config_generate {
|
|
MESSAGE="${UI_CONFIG_CREATING} ${CONFIG_FILE}"
|
|
echo_stat
|
|
cp ${LOCAL_FOLDR}/templates/${CONFIG_FILE}.example ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
echo_lines
|
|
echo -e "Welcome to the ${PURPLE}Gravity Sync${NC} Configuration Wizard"
|
|
echo -e "Please read through ${BLUE}https://github.com/vmstan/gravity-sync/wiki${NC} before you continue!"
|
|
echo_blank
|
|
echo -e "If the installer detects that you have a supported container engine (Docker or Podman) installed"
|
|
echo -e "on your local Pi-hole, you will be directed to the advanced installation options. If you using "
|
|
echo -e "containers on your remote Pi-hole, you'll need to select this option manually to adjust settings"
|
|
echo -e "such as custom Pi-hole binary or configuration directories, CNAME replication, etc."
|
|
echo_blank
|
|
echo -e "Gravity Sync uses a primary/secondary model for replication, and normally syncs changes from the "
|
|
echo -e "primary to the secondary. The LOCAL Pi-hole where you are running this configuration script is"
|
|
echo -e "considered the SECONDARY Pi-hole! The REMOTE Pi-hole where you normally make Gravity Database"
|
|
echo -e "changes, and is considered the PRIMARY Pi-hole."
|
|
echo_blank
|
|
echo -e "Confused? Please refer back to the documentation."
|
|
echo_lines
|
|
|
|
MESSAGE="${PROGRAM} ${UI_CONFIG_REQUIRED}"
|
|
echo_info
|
|
|
|
MESSAGE="${UI_CORE_APP} ${UI_CONFIG_REMOTE} ${UI_CONFIG_HOSTREQ}"
|
|
echo_inf1
|
|
|
|
MESSAGE="IP"
|
|
echo_need
|
|
read INPUT_REMOTE_HOST
|
|
|
|
MESSAGE="${UI_CONFIG_ICMP_TEST} ${INPUT_REMOTE_HOST}"
|
|
echo_stat
|
|
ping -c 3 ${INPUT_REMOTE_HOST} >/dev/null 2>&1
|
|
error_validate
|
|
|
|
MESSAGE="${UI_CONFIG_SAVING} ${INPUT_REMOTE_HOST} host to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/REMOTE_HOST='192.168.1.10'/c\REMOTE_HOST='${INPUT_REMOTE_HOST}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
MESSAGE="${UI_CORE_APP} ${UI_CONFIG_REMOTE} ${UI_CONFIG_USERREQ} for ${INPUT_REMOTE_HOST}"
|
|
echo_inf1
|
|
|
|
MESSAGE="User"
|
|
echo_need
|
|
read INPUT_REMOTE_USER
|
|
|
|
MESSAGE="${UI_CONFIG_SAVING} ${INPUT_REMOTE_USER}@${INPUT_REMOTE_HOST} user to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/REMOTE_USER='pi'/c\REMOTE_USER='${INPUT_REMOTE_USER}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
generate_sshkey
|
|
|
|
MESSAGE="${UI_CORE_LOADING} ${CONFIG_FILE}"
|
|
echo_stat
|
|
source ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
echo_lines
|
|
export_sshkey
|
|
echo_lines
|
|
|
|
MESSAGE="${UI_CONFIG_SSH_KEYPAIR} ${INPUT_REMOTE_HOST}"
|
|
echo_good_clean
|
|
|
|
MESSAGE="${UI_CONFIG_CONT_LOOKUP}"
|
|
echo_stat
|
|
|
|
docker_detect
|
|
podman_detect
|
|
|
|
if [ "${DOCKERREADY}" == "1" ] || [ "${PODMANREADY}" == "1" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_CONT_DETECT} ${UI_CONFIG_CONT_DETECTED}"
|
|
echo_good
|
|
MESSAGE="${UI_CORE_LOADING} ${UI_CONFIG_ADVANCED}"
|
|
echo_info
|
|
advanced_config_generate
|
|
else
|
|
MESSAGE="${UI_CONFIG_CONT_DETECT} ${UI_CONFIG_CONT_DETECTNA}"
|
|
echo_good
|
|
MESSAGE="${UI_CONFIG_DOADVANCED}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_YESNON}"
|
|
echo_need
|
|
read INPUT_ADVANCED_INSTALL
|
|
INPUT_ADVANCED_INSTALL="${INPUT_ADVANCED_INSTALL:-N}"
|
|
|
|
if [ "${INPUT_ADVANCED_INSTALL}" == "Yes" ] || [ "${INPUT_ADVANCED_INSTALL}" == "yes" ] || [ "${INPUT_ADVANCED_INSTALL}" == "Y" ] || [ "${INPUT_ADVANCED_INSTALL}" == "y" ]
|
|
then
|
|
MESSAGE="${UI_CORE_LOADING} ${UI_CONFIG_ADVANCED}"
|
|
echo_info
|
|
|
|
advanced_config_generate
|
|
else
|
|
end_config
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function end_config(){
|
|
echo_lines
|
|
echo -e "Configuration has been completed successfully, if you've still not read the instructions"
|
|
echo -e "please read through ${BLUE}https://github.com/vmstan/gravity-sync/wiki${NC} before you continue!"
|
|
echo_blank
|
|
echo -e "Your next step is to complete a sync of data from your remote Pi-hole to this local Pi-hole."
|
|
echo -e "ex: gravity-sync pull"
|
|
echo_blank
|
|
echo -e "If this completes successfully you can automate future sync jobs to run at a regular interval."
|
|
echo -e "ex: gravity-sync automate"
|
|
echo_blank
|
|
echo -e "Still confused? Please refer back to the documentation."
|
|
echo_lines
|
|
}
|
|
|
|
## Advanced Configuration Options
|
|
function advanced_config_generate {
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP} ${UI_CONFIG_INSTANCEREQ}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_INSTANCETYPE}"
|
|
echo_need
|
|
read INPUT_PH_IN_TYPE
|
|
INPUT_PH_IN_TYPE="${INPUT_PH_IN_TYPE:-default}"
|
|
|
|
if [ "${INPUT_PH_IN_TYPE}" != "default" ]
|
|
then
|
|
if [ "${INPUT_PH_IN_TYPE}" != "docker" ] && [ "${INPUT_PH_IN_TYPE}" != "podman" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CONFIG_INSTANCE_ERROR}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CONFIG_CONTAINER_TYPE} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# PH_IN_TYPE=''/c\PH_IN_TYPE='${INPUT_PH_IN_TYPE}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
MESSAGE="${UI_CONFIG_CONT_DETECT} ${UI_CONFIG_IMAGES}"
|
|
echo_info
|
|
echo_lines
|
|
if [ "${INPUT_PH_IN_TYPE}" == "docker" ]
|
|
then
|
|
sudo docker container ls
|
|
elif [ "${INPUT_PH_IN_TYPE}" == "podman" ]
|
|
then
|
|
sudo podman container ls
|
|
fi
|
|
echo_lines
|
|
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP} ${UI_CONFIG_INSTANCENAME}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_PIHOLE_DEFAULT}"
|
|
echo_need
|
|
read INPUT_DOCKER_CON
|
|
INPUT_DOCKER_CON="${INPUT_DOCKER_CON:-pihole}"
|
|
|
|
if [ "${INPUT_DOCKER_CON}" != "pihole" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CONFIG_CONTAINER_NAME} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# DOCKER_CON=''/c\DOCKER_CON='${INPUT_DOCKER_CON}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP} ${UI_CONFIG_ETC_VOLPATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_ETC_VOLPATH_EXAMPLE}"
|
|
echo_need
|
|
read INPUT_PIHOLE_DIR
|
|
|
|
if [ "${INPUT_PIHOLE_DIR}" != "" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CORE_APP} ${UI_CONFIG_ETC_VOLPATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# PIHOLE_DIR=''/c\PIHOLE_DIR='${INPUT_PIHOLE_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
SKIP_PIHOLE_DIR="1"
|
|
else
|
|
MESSAGE="${UI_CONFIG_SETTING_REQUIRED}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP_DNS} ${UI_CONFIG_ETC_VOLPATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_ETC_VOLDNSQ_EXAMPLE}"
|
|
echo_need
|
|
read INPUT_DNSMAQ_DIR
|
|
|
|
if [ "${INPUT_DNSMAQ_DIR}" != "" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CORE_APP_DNS} ${UI_CONFIG_ETC_VOLPATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# DNSMAQ_DIR=''/c\DNSMAQ_DIR='${INPUT_DNSMAQ_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
SKIP_DNSMASQ_DIR="1"
|
|
else
|
|
MESSAGE="${UI_CONFIG_SETTING_REQUIRED}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CONFIG_VOLUME_OWNER} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# FILE_OWNER=''/c\FILE_OWNER='999:999'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CORE_APP} ${UI_CONFIG_INSTANCEREQ}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_INSTANCETYPE}"
|
|
echo_need
|
|
read INPUT_RH_IN_TYPE
|
|
INPUT_RH_IN_TYPE="${INPUT_RH_IN_TYPE:-default}"
|
|
|
|
if [ "${INPUT_RH_IN_TYPE}" != "default" ]
|
|
then
|
|
if [ "${INPUT_RH_IN_TYPE}" != "docker" ] && [ "${INPUT_RH_IN_TYPE}" != "podman" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CONFIG_INSTANCE_ERROR}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CONFIG_CONTAINER_TYPE} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RH_IN_TYPE=''/c\RH_IN_TYPE='${INPUT_RH_IN_TYPE}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CONFIG_CONTAINER_NAME}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_DEFAULT_LEAVE} 'pihole'"
|
|
echo_need
|
|
read INPUT_ROCKER_CON
|
|
INPUT_ROCKER_CON="${INPUT_ROCKER_CON:-pihole}"
|
|
|
|
if [ "${INPUT_ROCKER_CON}" != "pihole" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CONFIG_CONTAINER_NAME} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# ROCKER_CON=''/c\ROCKER_CON='${INPUT_ROCKER_CON}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CORE_APP} ${UI_CONFIG_ETC_VOLPATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_ETC_VOLPATH_EXAMPLE}"
|
|
echo_need
|
|
read INPUT_RIHOLE_DIR
|
|
|
|
if [ "${INPUT_RIHOLE_DIR}" != "" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CORE_APP} ${UI_CONFIG_ETC_VOLPATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RIHOLE_DIR=''/c\RIHOLE_DIR='${INPUT_RIHOLE_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
SKIP_RIHOLE_DIR="1"
|
|
else
|
|
MESSAGE="${UI_CONFIG_SETTING_REQUIRED}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CORE_APP_DNS} ${UI_CONFIG_ETC_VOLPATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_ETC_VOLDNSQ_EXAMPLE}"
|
|
echo_need
|
|
read INPUT_RNSMAQ_DIR
|
|
|
|
if [ "${INPUT_RNSMAQ_DIR}" != "" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CORE_APP_DNS} ${UI_CONFIG_ETC_VOLPATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RNSMAQ_DIR=''/c\RNSMAQ_DIR='${INPUT_RNSMAQ_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
SKIP_RNSMASQ_DIR="1"
|
|
else
|
|
MESSAGE="${UI_CONFIG_SETTING_REQUIRED}"
|
|
echo_warn
|
|
exit_withchange
|
|
fi
|
|
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CONFIG_VOLUME_OWNER} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RILE_OWNER=''/c\RILE_OWNER='999:999'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
|
|
|
|
if [ "$SKIP_PIHOLE_DIR" != "1" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP} ${UI_CONFIG_SETTING_DIR_PATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_DEFAULT_LEAVE} ${UI_CONFIG_DEFAULT_PIHOLE_ETC}"
|
|
echo_need
|
|
read INPUT_PIHOLE_DIR
|
|
INPUT_PIHOLE_DIR="${INPUT_PIHOLE_DIR:-/etc/pihole}"
|
|
|
|
if [ "${INPUT_PIHOLE_DIR}" != "/etc/pihole" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CORE_APP} ${UI_CONFIG_SETTING_DIR_PATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# PIHOLE_DIR=''/c\PIHOLE_DIR='${INPUT_PIHOLE_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
fi
|
|
|
|
if [ "$SKIP_RIHOLE_DIR" != "1" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CORE_APP} ${UI_CONFIG_SETTING_DIR_PATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_DEFAULT_LEAVE} ${UI_CONFIG_DEFAULT_PIHOLE_ETC}"
|
|
echo_need
|
|
read INPUT_RIHOLE_DIR
|
|
INPUT_RIHOLE_DIR="${INPUT_RIHOLE_DIR:-/etc/pihole}"
|
|
|
|
if [ "${INPUT_RIHOLE_DIR}" != "/etc/pihole" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CORE_APP} ${UI_CONFIG_SETTING_DIR_PATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RIHOLE_DIR=''/c\RIHOLE_DIR='${INPUT_RIHOLE_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
fi
|
|
|
|
if [ "$SKIP_DNSMASQ_DIR" != "1" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_LOCALSEC} ${UI_CORE_APP_DNS} ${UI_CONFIG_SETTING_DIR_PATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_DEFAULT_LEAVE} '/etc/dnsmasq.d'"
|
|
echo_need
|
|
read INPUT_DNSMASQ_DIR
|
|
INPUT_DNSMASQ_DIR="${INPUT_DNSMASQ_DIR:-/etc/dnsmasq.d}"
|
|
|
|
if [ "${INPUT_DNSMASQ_DIR}" != "/etc/dnsmasq.d" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_LOCAL} ${UI_CORE_APP_DNS} ${UI_CONFIG_SETTING_DIR_PATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# DNSMASQ_DIR=''/c\DNSMASQ_DIR='${INPUT_DNSMASQ_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
fi
|
|
|
|
if [ "$SKIP_RNSMASQ_DIR" != "1" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_REMOTEPRI} ${UI_CORE_APP_DNS} ${UI_CONFIG_SETTING_DIR_PATH}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_DEFAULT_LEAVE} ${UI_CONFIG_DEFAULT_DNSMASQ_ETC}"
|
|
echo_need
|
|
read INPUT_RNSMASQ_DIR
|
|
INPUT_RNSMASQ_DIR="${INPUT_RNSMASQ_DIR:-/etc/dnsmasq.d}"
|
|
|
|
if [ "${INPUT_RNSMASQ_DIR}" != "/etc/dnsmasq.d" ]
|
|
then
|
|
MESSAGE="${UI_CONFIG_SAVING} ${UI_CONFIG_REMOTE} ${UI_CORE_APP_DNS} ${UI_CONFIG_SETTING_DIR_PATH} to ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# RNSMASQ_DIR=''/c\RNSMASQ_DIR='${INPUT_RNSMASQ_DIR}'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
fi
|
|
|
|
MESSAGE="${UI_ENABLE_REPLICATION_QUEST} ${UI_CUSTOM_NAME}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_YESNOY}"
|
|
echo_need
|
|
read INPUT_SKIP_CUSTOM
|
|
INPUT_SKIP_CUSTOM="${INPUT_SKIP_CUSTOM:-Y}"
|
|
|
|
if [ "${INPUT_SKIP_CUSTOM}" != "Y" ]
|
|
then
|
|
MESSAGE="${UI_DNS_NAME} ${UI_CONFIG_PREF_SAVED} ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# SKIP_CUSTOM=''/c\SKIP_CUSTOM='1'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
fi
|
|
|
|
if [ "${INPUT_SKIP_CUSTOM}" == "Y" ]
|
|
then
|
|
MESSAGE="${UI_ENABLE_REPLICATION_QUEST} ${UI_CNAME_NAME}"
|
|
echo_inf1
|
|
MESSAGE="${UI_CONFIG_YESNON}"
|
|
echo_need
|
|
read INPUT_INCLUDE_CNAME
|
|
INPUT_INCLUDE_CNAME="${INPUT_INCLUDE_CNAME:-N}"
|
|
|
|
if [ "${INPUT_INCLUDE_CNAME}" == "Y" ]
|
|
then
|
|
config_enablecname
|
|
fi
|
|
fi
|
|
|
|
end_config
|
|
}
|
|
|
|
function task_cname {
|
|
TASKTYPE='CNAME'
|
|
MESSAGE="${MESSAGE}: ${TASKTYPE}"
|
|
echo_good
|
|
|
|
config_enablecname
|
|
exit_withchange
|
|
}
|
|
|
|
function config_enablecname {
|
|
MESSAGE="${UI_CNAME_NAME} ${UI_CONFIG_PREF_SAVED} ${CONFIG_FILE}"
|
|
echo_stat
|
|
sed -i "/# INCLUDE_CNAME=''/c\INCLUDE_CNAME='1'" ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
}
|
|
|
|
## Delete Existing Configuration
|
|
function config_delete {
|
|
source ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
MESSAGE="${CONFIG_FILE} ${UI_CONFIG_ALREADY}"
|
|
echo_info
|
|
|
|
MESSAGE="${UI_CONFIG_AREYOUSURE}"
|
|
echo_inf1
|
|
|
|
intent_validate
|
|
|
|
MESSAGE="${UI_CONFIG_ERASING} ${CONFIG_FILE}"
|
|
echo_stat
|
|
rm -f ${LOCAL_FOLDR}/settings/${CONFIG_FILE}
|
|
error_validate
|
|
|
|
config_generate
|
|
}
|
|
|
|
## Detect Docker
|
|
function docker_detect {
|
|
if hash docker 2>/dev/null
|
|
then
|
|
FTLCHECK=$(sudo docker container ls | grep 'pihole/pihole')
|
|
if [ "$FTLCHECK" != "" ]
|
|
then
|
|
DOCKERREADY="1"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
## Detect Podman
|
|
function podman_detect {
|
|
if hash podman 2>/dev/null
|
|
then
|
|
FTLCHECK=$(sudo podman container ls | grep 'pihole/pihole')
|
|
if [ "$FTLCHECK" != "" ]
|
|
then
|
|
PODMANREADY="1"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
## Create Bash Alias
|
|
function create_alias {
|
|
MESSAGE="${UI_CONFIG_BASH}"
|
|
echo_stat
|
|
|
|
echo -e "alias gravity-sync='${GS_FILEPATH}'" | sudo tee -a /etc/bash.bashrc > /dev/null
|
|
error_validate
|
|
|
|
MESSAGE="${UI_CONFIG_ALIAS}"
|
|
echo_info
|
|
} |