#!/usr/bin/env bash readonly scratch=$(mktemp -d -t tmp.XXXXXXXXXX) readonly socket=$scratch/socket readonly data=$scratch/data readonly dbname=hydra-update-dbix function finish { set +e pg_ctl -D "$data" \ -o "-F -h '' -k \"$socket\"" \ -w stop -m immediate if [ -f "$data/postmaster.pid" ]; then pg_ctl -D "$data" \ -o "-F -h '' -k \"$socket\"" \ -w kill TERM "$(cat "$data/postmaster.pid")" fi rm -rf "$scratch" } trap finish EXIT set -e mkdir -p "$socket" initdb -D "$data" pg_ctl -D "$data" \ -o "-F -h '' -k \"${socket}\"" \ -w start createdb -h "$socket" "$dbname" psql -h "$socket" "$dbname" -f ./hydra.sql perl -I ../lib \ -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:../lib \ update-dbix.pl "dbi:Pg:dbname=$dbname;host=$socket"