mirror of
https://github.com/vmstan/gravity-sync.git
synced 2024-08-30 18:22:11 +00:00
* add path removal to clear_cron * 3.6.4 * add local folder to path * templates for systemd timers * Wantedby * user root * Gonna be 3.7 * Remove legacy cron code from automate function * Core for moving replication jobs into place * Move stop before copy * Add Gravity Sync messages * Service file customization * Line break * 10 minutes to sudo * if active else * Do things quietly * Custom exec path * clear exec start * warning about cron * no longer exists
164 lines
6.9 KiB
Bash
164 lines
6.9 KiB
Bash
# GRAVITY SYNC BY VMSTAN #####################
|
|
# gs-ui.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!
|
|
|
|
# Interface Settings
|
|
UI_GRAVITY_NAME='Domain Database'
|
|
UI_CUSTOM_NAME='Local DNS Records'
|
|
UI_CNAME_NAME='Local DNS CNAMEs'
|
|
|
|
# Core
|
|
UI_INVALID_SELECTION='Invalid selection'
|
|
UI_INVALID_DNS_CONFIG='Invalid DNS replication settings in'
|
|
UI_CORE_MISSING='Missing'
|
|
UI_CORE_LOADING='Loading'
|
|
UI_CORE_EVALUATING='Evaluating arguments'
|
|
UI_CORE_INIT="Initalizing ${PROGRAM} (${VERSION})"
|
|
UI_CORE_RELOCATING='Relocating'
|
|
UI_CORE_APP='Pi-hole'
|
|
UI_CORE_APP_DNS='DNSMASQ'
|
|
UI_CORE_APP_SQL='SQLITE3'
|
|
UI_CORE_OPENSSH='OpenSSH'
|
|
UI_CORE_RSYNC='RSYNC'
|
|
UI_CORE_DOCKER='Docker'
|
|
UI_CORE_PODMAN='Podman'
|
|
UI_CORE_UC_PRIMARY='Primary'
|
|
UI_CORE_UC_SECONDARY='Secondary'
|
|
|
|
# Exit
|
|
UI_EXIT_CALC_END='after'
|
|
UI_EXIT_ABORT='exited'
|
|
UI_EXIT_COMPLETE='completed'
|
|
UI_EXIT_CALC_TIMER='seconds'
|
|
|
|
# Hashing
|
|
UI_HASHING_HASHING='Hashing the primary'
|
|
UI_HASHING_COMPARING='Comparing to the secondary'
|
|
UI_HASHING_DIFFERNCE='Differences detected in the'
|
|
UI_HASHING_DETECTED='has been detected on the'
|
|
UI_HASHING_NOTDETECTED='not detected on the'
|
|
UI_HASHING_PRIMARY='primary host'
|
|
UI_HASHING_SECONDARY='secondary host'
|
|
UI_HASHING_REQUIRED='Replication of Pi-hole settings is required'
|
|
UI_HASHING_NOREP='No replication is required at this time'
|
|
UI_HASHING_DIAGNOSTICS='Performing replicator diagnostics'
|
|
UI_HASHING_REHASHING='Rehashing the primary'
|
|
UI_HASHING_RECOMPARING='Recomparing to the secondary'
|
|
|
|
# Validation
|
|
UI_VALIDATING='Validating configuration of'
|
|
UI_VALIDATING_FAIL_CONTAINER='Unable to validate running container instance of'
|
|
UI_VALIDATING_FAIL_FOLDER='Unable to validate configuration folder for'
|
|
UI_VALIDATING_FAIL_BINARY='Unable to validate the availibility of'
|
|
UI_COMPENSATE='Attempting to compensate'
|
|
UI_SET_FILE_OWNERSHIP='Setting file ownership on'
|
|
UI_SET_FILE_PERMISSION='Setting file permissions on'
|
|
UI_VAL_FILE_OWNERSHIP='Validating file ownership on'
|
|
UI_VAL_FILE_PERMISSION='Validating file permissions on'
|
|
UI_VAL_GS_FOLDERS="Validating ${PROGRAM} folders on $HOSTNAME"
|
|
UI_VAL_GS_FOLDERS_FAIL="Unable to validate ${PROGRAM} folders on $HOSTNAME"
|
|
|
|
# Configuration
|
|
UI_DROPBEAR_DEP='Dropbear support has been deprecated'
|
|
|
|
# Pull/Push
|
|
UI_PULL_PRIMARY='Pulling the primary'
|
|
UI_PUSH_SECONDARY='Pushing the secondary'
|
|
UI_REPLACE_SECONDARY='Replacing the secondary'
|
|
UI_PULL_RELOAD_WAIT='Isolating regeneration pathways'
|
|
UI_PUSH_RELOAD_WAIT='Inverting tachyon pulses'
|
|
UI_FTLDNS_CONFIG_UPDATE='Updating secondary FTLDNS configuration'
|
|
UI_FTLDNS_CONFIG_RELOAD='Reloading secondary FTLDNS services'
|
|
UI_FTLDNS_CONFIG_PUSH_UPDATE='Updating primary FTLDNS configuration'
|
|
UI_FTLDNS_CONFIG_PUSH_RELOAD='Reloading primary FTLDNS services'
|
|
|
|
# Logging
|
|
UI_LOGGING_SUCCESS='Logging successful'
|
|
UI_LOGGING_HASHES='Saving the updated hashes from this replication'
|
|
UI_LOGGING_DISPLAY='Displaying output of previous jobs'
|
|
UI_LOGGING_EMPTY='is empty'
|
|
UI_LOGGING_MISSING='is missing'
|
|
UI_LOGGING_RECENT_COMPLETE='Recent complete executions of'
|
|
|
|
# Backup
|
|
UI_BACKUP_PRIMARY='Performing copy of primary'
|
|
UI_BACKUP_COPY='Pulling copy of primary'
|
|
UI_BACKUP_SECONDARY='Performing copy of secondary'
|
|
UI_BACKUP_PURGE='Purging unused data files from this Pi-hole instance'
|
|
UI_BACKUP_REMAIN='days of backups remain'
|
|
UI_BACKUP_INTEGRITY="Checking ${UI_GRAVITY_NAME} copy integrity"
|
|
UI_BACKUP_INTEGRITY_FAILED='Integrity check has failed for the primary'
|
|
UI_BACKUP_INTEGRITY_DELETE='Removing failed copies'
|
|
UI_BACKUP_DELETE_ALL='All unused data files purged'
|
|
|
|
# Restore
|
|
UI_RESTORE_WARNING="This will overwrite your current Pi-hole settings on $HOSTNAME with a previous version!"
|
|
UI_RESTORE_INVALID='Invalid restoration request'
|
|
UI_RESTORE_SELECT_DATE='Select backup date from which to restore the'
|
|
UI_RESTORE_SKIPPING='Skipping restore of'
|
|
UI_RESTORE_BACKUP_SELECTED='backup selected for restoration'
|
|
UI_RESTORE_BACKUP_UNAVAILABLE='backups are unavailable'
|
|
UI_RESTORE_FROM='restoring from'
|
|
UI_RESTORE_TIME_TRAVEL='Preparing calculations for time travel'
|
|
UI_RESTORE_SECONDARY='Restoring the secondary'
|
|
UI_RESTORE_PUSH_PROMPT='Do you want to push the restored configuration to the primary Pi-hole? (Y/N)'
|
|
UI_RESTORE_PUSH_NOPUSH="Configuration will not be pushed to the primaryp Pi-hole"
|
|
|
|
# Purge
|
|
UI_PURGE_MATRIX_ALIGNMENT='Realigning dilithium crystal matrix'
|
|
UI_PURGE_DELETE_SSH_KEYS='Deleting SSH key-files'
|
|
UI_PURGE_CLEANING_DIR="Purging ${PROGRAM} directory"
|
|
|
|
# Automation
|
|
UI_AUTO_CRON_EXISTS='Automation task exists in crontab'
|
|
UI_AUTO_CRON_DISPLAY_FREQ='Select synchronization frequency (in minutes)'
|
|
UI_AUTO_CRON_SELECT_FREQ='Valid options are 5, 10, 15, 30 or 0 to disable (default: 15)'
|
|
UI_AUTO_CRON_SAVING='Saving new synchronization task to crontab'
|
|
UI_AUTO_CRON_DISABLED='Automation with crontab has been disabled'
|
|
|
|
# Configuration
|
|
UI_CONFIG_YESNOY="'Yes' or 'No', blank is default 'Yes'"
|
|
UI_CONFIG_YESNON="'Yes' or 'No', blank is default 'No'"
|
|
UI_CONFIG_ALREADY='already exists'
|
|
UI_ENABLE_REPLICATION_QUEST='Enable replication of'
|
|
UI_CONFIG_PREF_SAVED='preference saved to'
|
|
UI_CONFIG_AREYOUSURE='Proceeding will wipe out your existing configuration'
|
|
UI_CONFIG_DOADVANCED='Do you want to enable advanced installation options'
|
|
UI_CONFIG_ERASING='Erasing existing'
|
|
UI_CONFIG_CREATING='Creating new'
|
|
UI_CONFIG_BASH='Creating gravity-sync alias in Bash config'
|
|
UI_CONFIG_ALIAS="You must reload your session for 'gravity-sync' alias to function"
|
|
UI_CONFIG_ICMP_TEST='Testing network connection to'
|
|
UI_CONFIG_REQUIRED='required settings'
|
|
UI_CONFIG_ADVANCED='advanced settings'
|
|
UI_CONFIG_REMOTE='remote host'
|
|
UI_CONFIG_LOCAL='local host'
|
|
UI_CONFIG_HOSTREQ='address required'
|
|
UI_CONFIG_USERREQ='SSH user required'
|
|
UI_CONFIG_CONT_LOOKUP='Looking for container engines'
|
|
UI_CONFIG_CONT_DETECT='Docker or Podman container engine'
|
|
UI_CONFIG_CONT_DETECTED='detected'
|
|
UI_CONFIG_CONT_DETECTNA='not detected'
|
|
UI_CONFIG_SSH_KEYPAIR='Key-pair registered to'
|
|
UI_CONFIG_LOCALSEC='Local/secondary'
|
|
UI_CONFIG_REMOTEPRI='Remote/primary'
|
|
UI_CONFIG_INSTANCEREQ='instance type required'
|
|
UI_CONFIG_INSTANCENAME='instance name required'
|
|
UI_CONFIG_INSTANCETYPE="'docker' or 'podman' container, or blank for default install"
|
|
UI_CONFIG_CONTAINER_TYPE='container type'
|
|
UI_CONFIG_CONTAINER_NAME='container name'
|
|
UI_CONFIG_INSTANCE_ERROR="${UI_CONFIG_CONTAINER_TYPE} must either be 'docker' or 'podman'"
|
|
UI_CONFIG_IMAGES='running instances'
|
|
UI_CONFIG_SAVING='Saving'
|
|
UI_CONFIG_PIHOLE_DEFAULT="Container name or blank for default 'pihole'"
|
|
UI_CONFIG_ETC_VOLPATH="'etc' volume path"
|
|
UI_CONFIG_ETC_VOLPATH_EXAMPLE="Example, '/opt/pihole/etc-pihole'"
|
|
UI_CONFIG_ETC_VOLDNSQ_EXAMPLE="Example, '/opt/pihole/etc-dnsmasq.d'"
|
|
UI_CONFIG_SETTING_REQUIRED='This setting is required!'
|
|
UI_CONFIG_SETTING_DIR_PATH='settings directory path'
|
|
UI_CONFIG_VOLUME_OWNER='volume ownership'
|
|
UI_CONFIG_DEFAULT_LEAVE="Leave blank for default"
|
|
UI_CONFIG_DEFAULT_DNSMASQ_ETC="'/etc/dnsmasq.d'"
|
|
UI_CONFIG_DEFAULT_PIHOLE_ETC="'/etc/pihole'" |