11#! /bin/sh
22
3+ DB_USER=" ${DB_USER:- root} "
4+ DB_NAME=" ${DB_NAME:- nictool} "
35MYSQL_BIN=" "
46
5- if [ " $MYSQL_PWD " = " " ];
6- then
7- export MYSQL_PWD=root
8-
9- # configure MySQL in the GitHub workflow runners
10- case " $( uname -s) " in
11- Linux* )
12- ;;
13- Darwin* )
14- MYSQL_BIN=/opt/homebrew/opt/mysql@8.4/bin/
15- ${MYSQL_BIN} mysqladmin --user=root --password=' ' --protocol=tcp password ' root'
16- ;;
17- CYGWIN* |MINGW* |MINGW32* |MSYS* )
18- mysqladmin --user=root --password=' ' --protocol=tcp password ' root'
19- # export MYSQL_PWD=""
20- ;;
21- esac
7+ if [ " $MYSQL_PWD " = " " ]; then
8+ if [ -n " $MYSQL_ROOT_PASSWORD " ]; then
9+ # Docker: MYSQL_ROOT_PASSWORD is set by the MariaDB container
10+ export MYSQL_PWD=" $MYSQL_ROOT_PASSWORD "
11+ else
12+ export MYSQL_PWD=root
13+
14+ # configure MySQL in the GitHub workflow runners
15+ case " $( uname -s) " in
16+ Linux* )
17+ ;;
18+ Darwin* )
19+ MYSQL_BIN=/opt/homebrew/opt/mysql@8.4/bin/
20+ ${MYSQL_BIN} mysqladmin --user=root --password=' ' --protocol=tcp password ' root'
21+ ;;
22+ CYGWIN* |MINGW* |MINGW32* |MSYS* )
23+ mysqladmin --user=root --password=' ' --protocol=tcp password ' root'
24+ # export MYSQL_PWD=""
25+ ;;
26+ esac
27+ fi
2228fi
2329
24- # AUTH="--defaults-extra-file=./sql/my-gha.cnf"
30+ if [ -z " $MYSQL_CMD " ]; then
31+ # prefer mariadb client if available (MariaDB 11+ dropped the mysql symlink)
32+ if [ -z " $MYSQL_BIN " ] && command -v mariadb > /dev/null 2>&1 ; then
33+ MYSQL_CMD=" mariadb --user=$DB_USER "
34+ elif [ -n " $MYSQL_BIN " ]; then
35+ MYSQL_CMD=" ${MYSQL_BIN} mysql --user=$DB_USER "
36+ else
37+ MYSQL_CMD=" mysql --user=$DB_USER "
38+ fi
39+ fi
2540
2641if [ " $1 " = " drop" ]; then
27- ${MYSQL_BIN} mysql --user=root -e ' DROP DATABASE IF EXISTS nictool; ' || exit 1
42+ $MYSQL_CMD -e " DROP DATABASE IF EXISTS $DB_NAME ; " || exit 1
2843fi
29- ${MYSQL_BIN} mysql --user=root -e ' CREATE DATABASE nictool;' || exit 1
3044
31- for f in ./sql/* .sql;
45+ $MYSQL_CMD -e " CREATE DATABASE IF NOT EXISTS $DB_NAME ;" || exit 1
46+
47+ # In Docker, SQL_DIR is set via compose env (e.g. /sql).
48+ # Outside Docker, defaults to ./sql relative to CWD (typically the repo root).
49+ SQL_DIR=" ${SQL_DIR:- ./ sql} "
50+
51+ for f in " $SQL_DIR " /* .sql;
3252do
33- echo " cat $f | ${MYSQL_BIN} mysql nictool "
34- cat $f | ${MYSQL_BIN} mysql --user=root nictool || exit 1
53+ echo " $f "
54+ $MYSQL_CMD " $DB_NAME " < " $f " || exit 1
3555done
3656
37- exit 0
57+ exit 0
0 commit comments