34 lines
790 B
Nix
34 lines
790 B
Nix
|
{ 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
|
||
|
|
||
|
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
|
||
|
'';
|
||
|
};
|
||
|
}
|