diff --git a/borg-backup.sh b/borg-backup.sh index 56f41de..12d5e21 100755 --- a/borg-backup.sh +++ b/borg-backup.sh @@ -140,6 +140,14 @@ echo_wait(){ 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() { local var="$*" 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 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 - fatal "Unknown DB_TYPE '${DB_TYPE}'." + # replace comma by blank sign + DB_TYPE=${DB_TYPE/,/ } 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}" @@ -428,7 +450,9 @@ if [[ -n "${DB_TYPE}" ]] && [[ "${DB_TYPE,,}" = "!none" ]]; then blank_line fi -if [[ "${DB_TYPE,,}" = "mysql" ]] ; then +if containsElement "mysql" "${db_type_arr[@]}" ; then + + blank_line echononl "Create an array of MySQL databases." @@ -490,8 +514,11 @@ EOF fi 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." @@ -551,6 +578,8 @@ EOF fi +blank_line + echononl "Create borg backup.."