From f0f18f627de8666e0ae7fd757324f9058cc2e36a Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 18 Jan 2025 16:06:29 +0200 Subject: feat(shell): Add MYSQL_UNIX_SOCKET var and automatically apply migrations --- shell.nix | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index a6ee6ef..db1054b 100644 --- a/shell.nix +++ b/shell.nix @@ -20,9 +20,12 @@ let # Thanks https://github.com/JianZcar/LAMP-nix-shell-env/blob/main/default.nix shellHook = '' - # - # Apache2 - # + : ''${MYSQL_HOME:="$HOME/.config/mysql"} + : ''${MYSQL_DATADIR:="$MYSQL_HOME/data"} + : ''${MYSQL_PID_FILE:="$MYSQL_HOME/mysql.pid"} + : ''${MYSQL_UNIX_SOCKET:="$MYSQL_HOME/mysql.sock"} + MYSQL_UNIX_PORT="$MYSQL_UNIX_SOCKET" + export MYSQL_UNIX_SOCKET MYSQL_UNIX_PORT : ''${SERVER_ROOT:=${apacheHttpd}} : ''${SERVER_PORT:=8000} @@ -31,6 +34,10 @@ let : ''${PHP_FPM_SOCKET:=$ROOT_DIR/php-fpm.sock} export SERVER_ROOT SERVER_PORT ROOT_DIR REPOSITORY PHP_FPM_SOCKET + # + # Apache2 + # + if [ ! -d "$ROOT_DIR" ] then echo 'Installing apache config...' @@ -79,12 +86,6 @@ let # Database # - : ''${MYSQL_HOME:="$HOME/.config/mysql"} - : ''${MYSQL_DATADIR:="$MYSQL_HOME/data"} - : ''${MYSQL_PID_FILE:="$MYSQL_HOME/mysql.pid"} - : ''${MYSQL_UNIX_PORT:="$MYSQL_HOME/mysql.sock"} - export MYSQL_UNIX_PORT - __first_time="" if [ ! -d "$MYSQL_HOME" ] then @@ -111,7 +112,7 @@ let --basedir="${mariadb}" \ --datadir="$MYSQL_DATADIR" \ --pid-file="$MYSQL_PID_FILE" \ - --socket="$MYSQL_UNIX_PORT" \ + --socket="$MYSQL_UNIX_SOCKET" \ --bind-address=0.0.0.0 \ --log-error="$MYSQL_HOME"/mysql.err \ --user="$USER" >>"$MYSQL_HOME"/mysql.log & @@ -134,6 +135,15 @@ let fi unset __first_time + if ! mysql -e 'use nwfh;' >/dev/null 2>&1 + then + echo 'nwfh database not found, applying migrations...' + for migration in ./migrations/* + do + mysql < "$migration" >/dev/null + done + fi + # Start user's shell "$(getent passwd $USER | cut -d : -f 7)" @@ -145,7 +155,7 @@ let echo 'Shutting down mysql...' mysqladmin \ --user="root" \ - --socket="$MYSQL_UNIX_PORT" \ + --socket="$MYSQL_UNIX_SOCKET" \ shutdown || pkill mysqld exit 0 -- cgit v1.2.3