{ writeShellApplication, postgresql, ... }: { prymn_db = writeShellApplication { name = "prymn_db"; runtimeInputs = [ postgresql ]; text = '' #!/usr/bin/env bash set -e export PGDATA=$PROJECT_ROOT_DIR/.db export PGHOST=/tmp export DB_LOG=$PROJECT_ROOT_DIR/.db/log start_db() { if [ ! -d "$PGDATA" ]; then initdb "$PGDATA" --auth=trust fi if ! pg_ctl status >/dev/null; then pg_ctl start -l "$DB_LOG" -o "-c unix_socket_directories=$PGHOST" echo "starting your dev database..." fi user_exists=$(psql --csv -t -d postgres -c "SELECT count(*) FROM pg_user WHERE usename='postgres'") if [ "$user_exists" != "1" ]; then createuser -s -h "$PGHOST" postgres fi } command="''${1-default}" case $command in shell) psql -U postgres exit 0 ;; start | default | *) start_db exit 0 ;; esac ''; }; }