#!/bin/bash set -e #fail fast #H Usage: #H prepare_db.sh -h | prepare_db.sh --help #H #H prints this help and exits #H #H prepare_db.sh #H #H downloads and starts docker image for taskana unit tests #H #H database: #H - H2 #H - DB2_10_5 #H - DB2_11_1 #H - POSTGRES_10_4 # Arguments: # $1: exit code function helpAndExit { cat "$0" | grep "^#H" | cut -c4- exit "$1" } function main { [[ $# -eq 0 || "$1" == '-h' || "$1" == '--help' ]] && helpAndExit 0 propFile="$HOME/taskanaUnitTest.properties" case "$1" in H2) if [[ -f "$propFile" ]]; then rm "$propFile" fi ;; DB2_10_5) if [[ -z `docker ps -aq -f name=^/taskana-db2_10_5$ -f status=running` ]]; then if [[ -z `docker ps -aq -f name=^/taskana-db2_10_5$` ]]; then docker run -d -p 50100:50000 --name taskana-db2_10_5 taskana/db2:10.5 -d else docker start taskana-db2_10_5 fi fi echo 'jdbcDriver=com.ibm.db2.jcc.DB2Driver' > $propFile echo 'jdbcUrl=jdbc:db2://localhost:50100/tskdb' >> $propFile echo 'dbUserName=db2inst1' >> $propFile echo 'dbPassword=db2inst1-pwd' >> $propFile echo 'schemaName=TASKANA' >> $propFile ;; DB2_11_1) if [[ -z `docker ps -aq -f name=^/taskana-db2_11_1$ -f status=running` ]]; then if [[ -z `docker ps -aq -f name=^/taskana-db2_11_1$` ]]; then docker run -d -p 50101:50000 --name taskana-db2_11_1 taskana/db2:11.1 -d else docker start taskana-db2_11_1 fi fi echo 'jdbcDriver=com.ibm.db2.jcc.DB2Driver' > $propFile echo 'jdbcUrl=jdbc:db2://localhost:50101/tskdb' >> $propFile echo 'dbUserName=db2inst1' >> $propFile echo 'dbPassword=db2inst1-pwd' >> $propFile echo 'schemaName=TASKANA' >> $propFile ;; POSTGRES_10_4) if [[ -z `docker ps -aq -f name=^/taskana-postgres_10_4$ -f status=running` ]]; then if [[ -z `docker ps -aq -f name=^/taskana-postgres_10_4$` ]]; then docker run -d -p 50102:5432 --name taskana-postgres_10_4 -e POSTGRES_PASSWORD=postgres postgres:10.4 else docker start taskana-postgres_10_4 fi fi echo 'jdbcDriver=org.postgresql.Driver' > $propFile echo 'jdbcUrl=jdbc:postgresql://localhost:50102/postgres' >> $propFile echo 'dbUserName=postgres' >> $propFile echo 'dbPassword=postgres' >> $propFile echo 'schemaName=taskana' >> $propFile ;; *) echo "unknown database '$1'" >&2 exit 1 esac docker ps } main "$@"