support bacjup og bith, MySQL and PostgreSQL databases.

This commit is contained in:
Christoph 2025-01-24 16:00:57 +01:00
parent 53ab70325a
commit 0fa2d55653

View File

@ -140,6 +140,14 @@ echo_wait(){
fi fi
} }
## - Check if a given array (parameter 2) contains a given string (parameter 1)
## -
containsElement () {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
trim() { trim() {
local var="$*" local var="$*"
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
@ -312,14 +320,28 @@ BORG_LOG_FILE="${BORG_LOG_DIR}/borg-backup.log"
if [[ -z "${DB_TYPE}" ]] ; then if [[ -z "${DB_TYPE}" ]] ; then
DB_TYPE="${DEFAULT_DB_TYPE}" DB_TYPE="${DEFAULT_DB_TYPE}"
elif [[ "${DB_TYPE,,}" = "mysql" ]] ; then
[[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}"
elif [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then
[[ -z "${PSQL_SYSTEM_USER}" ]] && PSQL_SYSTEM_USER="${DEFAULT_PSQL_SYSTEM_USER}"
else else
fatal "Unknown DB_TYPE '${DB_TYPE}'." # replace comma by blank sign
DB_TYPE=${DB_TYPE/,/ }
fi fi
declare -a db_type_arr=()
for _db_type in ${DB_TYPE}; do
if [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then
db_type_arr+=("postgresql")
else
db_type_arr+=("${_db_type,,}")
fi
done
if containsElement "mysql" "${db_type_arr[@]}" ; then
[[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}"
fi
if containsElement "postgresql" "${db_type_arr[@]}" ; then
[[ -z "${PSQL_SYSTEM_USER}" ]] && PSQL_SYSTEM_USER="${DEFAULT_PSQL_SYSTEM_USER}"
fi
[[ -z "${BACKUP_DIRECTORIES}" ]] && BACKUP_DIRECTORIES="${DEFAULT_BACKUP_DIRECTORIES}" [[ -z "${BACKUP_DIRECTORIES}" ]] && BACKUP_DIRECTORIES="${DEFAULT_BACKUP_DIRECTORIES}"
@ -428,7 +450,9 @@ if [[ -n "${DB_TYPE}" ]] && [[ "${DB_TYPE,,}" = "!none" ]]; then
blank_line blank_line
fi fi
if [[ "${DB_TYPE,,}" = "mysql" ]] ; then if containsElement "mysql" "${db_type_arr[@]}" ; then
blank_line
echononl "Create an array of MySQL databases." echononl "Create an array of MySQL databases."
@ -490,8 +514,11 @@ EOF
fi fi
done done
fi
elif [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then if containsElement "postgresql" "${db_type_arr[@]}" ; then
blank_line
echononl "Create an array of PostgreSQL databases." echononl "Create an array of PostgreSQL databases."
@ -551,6 +578,8 @@ EOF
fi fi
blank_line
echononl "Create borg backup.." echononl "Create borg backup.."