diff --git a/env/mysql.nix b/env/mysql.nix index 028d566..bcdc24f 100644 --- a/env/mysql.nix +++ b/env/mysql.nix @@ -2,19 +2,24 @@ with pkgs; -mkShell { +let + sql_file = "database/db.sql"; + data_dir = "$(pwd)/.mysql"; + socket = "${data_dir}/mysql.sock"; + +in mkShell { buildInputs = [ mysql57 ]; shellHook = '' - pkill mysql - rm -rf .mysql && mkdir .mysql + trap "kill 0" EXIT + [ -d ${data_dir} ] || mkdir ${data_dir} - mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --initialize-insecure - mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --skip-networking & + mysqld --datadir="${data_dir}" --socket="${socket}" --initialize-insecure + mysqld --datadir="${data_dir}" --socket="${socket}" --skip-networking & sleep 1 - mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql + mysql --socket="${socket}" -u root < ${sql_file} - alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root' + alias mysql='mysql --socket="${socket}" -u root' ''; }