arkency/rails_event_store

View on GitHub
support/nix/mysql_8_0.nix

Summary

Maintainability
Test Coverage
with import <nixpkgs> {};

mkShell {
  packages = [ mysql80 ];

  shellHook = ''
    ${builtins.readFile ./pushtrap.sh}

    TMP=$(mktemp -d)
    DB=$TMP/db
    SOCKET=$TMP/mysql.sock
    PIDFILE=$TMP/mysql.pid

    mkdir -p $DB
    mysqld \
      --basedir=${mysql80} \
      --datadir=$DB \
      --pid-file=$PIDFILE \
      --socket=$SOCKET \
      --initialize-insecure
    mysqld \
      --datadir=$DB \
      --pid-file=$PIDFILE \
      --socket=$SOCKET \
      --skip-networking \
      --skip-mysqlx \
      --daemonize
    mysqladmin -u root --socket=$SOCKET create rails_event_store

    export DATABASE_URL="mysql2:///rails_event_store?socket=$SOCKET&username=root"

    pushtrap "mysqladmin -u root --socket=$SOCKET shutdown; rm -rf $TMP" EXIT
  '';
}