Merge "[COMMON] Fix ${p//pat/str} bashism"
[oom.git] / kubernetes / portal / components / portal-mariadb / resources / config / mariadb / docker-entrypoint.sh
index 40341be..f5dcbff 100644 (file)
@@ -87,7 +87,7 @@ docker_process_init_files() {
 mysql_check_config() {
        local toRun=( "$@" --verbose --help --log-bin-index="$(mktemp -u)" ) errors
        if ! errors="$("${toRun[@]}" 2>&1 >/dev/null)"; then
-               mysql_error $'mysqld failed while attempting to check config\n\tcommand was: '"${toRun[*]}"$'\n\t'"$errors"
+               mysql_error "$(printf 'mysqld failed while attempting to check config\n\tcommand was: ')${toRun[*]}$(printf'\n\t')$errors"
        fi
 }
 
@@ -106,7 +106,7 @@ docker_temp_server_start() {
        "$@" --skip-networking --socket="${SOCKET}" &
        mysql_note "Waiting for server startup"
        local i
-       for i in {30..0}; do
+       for i in $(seq 30 -1 0); do
                # only use the root password if the database has already been initializaed
                # so that it won't try to fill in a password file when it hasn't been set yet
                extraArgs=""
@@ -134,7 +134,7 @@ docker_temp_server_stop() {
 # Verify that the minimally required password settings are set for new databases.
 docker_verify_minimum_env() {
        if [ -z "$MYSQL_ROOT_PASSWORD" -a -z "$MYSQL_ALLOW_EMPTY_PASSWORD" -a -z "$MYSQL_RANDOM_ROOT_PASSWORD" ]; then
-               mysql_error $'Database is uninitialized and password option is not specified\n\tYou need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD'
+               mysql_error "$(printf'Database is uninitialized and password option is not specified\n\tYou need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD')"
        fi
 }
 
@@ -164,7 +164,7 @@ docker_init_database_dir() {
                installArgs=${installArgs}" --auth-root-authentication-method=normal"
        fi
        # "Other options are passed to mysqld." (so we pass all "mysqld" arguments directly here)
-       mysql_install_db ${installArgs} "${@:2}"
+       mysql_install_db ${installArgs} "$(echo ${@} | sed 's/^ *[^ ]* *//')"
        mysql_note "Database files initialized"
 }
 
@@ -278,10 +278,10 @@ docker_setup_db() {
 
                if [ -n "$MYSQL_DATABASE" ]; then
                        mysql_note "Giving user ${MYSQL_USER} access to schema ${MYSQL_DATABASE}"
-                       echo "GRANT ALL ON \`${MYSQL_DATABASE//_/\\_}\`.* TO '$MYSQL_USER'@'%' ;" |docker_process_sql --database=mysql
+                       echo "GRANT ALL ON \`$(echo $MYSQL_DATABASE | sed 's@_@\\_@g')\`.* TO '$MYSQL_USER'@'%' ;" | docker_process_sql --database=mysql
                fi
 
-               echo "FLUSH PRIVILEGES ;" |docker_process_sql --database=mysql
+               echo "FLUSH PRIVILEGES ;" | docker_process_sql --database=mysql
        fi
 }
 
@@ -313,7 +313,7 @@ _mysql_want_help() {
 
 _main() {
        # if command starts with an option, prepend mysqld
-       if [ "${1:0:1}" = '-' ]; then
+       if echo "$1" | grep '^-' >/dev/null; then
                set -- mysqld "$@"
        fi