cd "$(git rev-parse --show-toplevel)" # Check for lock [ -f matabas-db/dev-lock ] IS_OWNER=$? # non-zero is owner set -e export PGPORT=2137 export PGDATABASE=matabas export PGUSER=matabasare log() { printf "\e[1m\e[38;5;87m==>\e[0m\e[1m %s%s\e[0m\n" "$1" "${2:-.}" } # Only trapped if owner exitHook() { cd "$(git rev-parse --show-toplevel)" log "Stoppar brevekorren" pg_ctl stop --pgdata=./matabas-db rm -f matabas-db/dev-lock } setupDb() { log "Letar efter existerande brevekorresmapp" [ -d ./matabas-db ] || { log "Finns ej, skapar brevekorresmapp (./matabas-db)" pg_ctl initdb --pgdata=./matabas-db -o "--username=$PGUSER" } [ -f matabas-db/matabas.log ] && { log "Flyttar journalen från senaste sittningen till journalarkivet (./matabas-db/matabas.log.old)" cat matabas-db/matabas.log >> matabas-db/matabas.log.old rm -f matabas-db/matabas.log } log "Startar brevekorren" pg_ctl start --pgdata=./matabas-db --log=./matabas-db/matabas.log --options="-p $PGPORT -k /tmp" log "Låser databasen" :> matabas-db/dev-lock trap exitHook EXIT log "Skapar matabas" createdb -h localhost -p "$PGPORT" matabas 2>>./matabas-db/matabas.log || log "Matabasen finns, skriver ej över" log "Ställer in schema.sql" psql -h localhost -p "$PGPORT" "$PBDATABASE" < schema.sql } P="$PWD" clean() { cd "$(git rev-parse --show-toplevel)" log "Rensar byggnad" rm -rf artifacts cd - >/dev/null } build() { cd "$(git rev-parse --show-toplevel)" ( source "buildScripts/build.sh" ) RES=$? cd - >/dev/null return $RES } run() { build && { cd "$(git rev-parse --show-toplevel)" ./artifacts/Main cd - >/dev/null } } if [ "$IS_OWNER" -ne 0 ] ; then setupDb else log "Startar som icke-ägare, startar ej databasen" fi log "Redo" "!" set +e cd - >/dev/null