{ pkgs ? import { } }: with pkgs; let sql_file = "data/db.sql"; data_dir = "$(pwd)/.pgdata"; in mkShell { buildInputs = [ postgresql ]; shellHook = '' trap "kill 0" EXIT export PGDATA="${data_dir}" export PGHOST="${data_dir}" if [ ! -d ${data_dir} ]; then initdb --auth-local=trust --no-locale --encoding=UTF8 fi if ! pg_ctl status; then pg_ctl start -o "--unix_socket_directories=${data_dir} --listen_addresses='''" fi psql -d postgres -f ${sql_file} alias psql='psql -d postgres' ''; }