#!/bin/bash

# Start a Ziniki running
# This assumes that a FLAS+Ziniki package has been downloaded and this script is $ZINIKI_ROOT/bin/ziniki

root="`dirname $0`"
root="`dirname $root`"

CUSTOM=""
DEBUG=WARN
DATABASE=""
MODULES=""
JAVAOPTS=""
TRACE=""

while [ $# -gt 0 ] ; do
  case "$1" in
    -D*)
      JAVAOPTS="$JAVAOPTS $1"
      shift
      ;;
    --custom)
      CUSTOM=custom
      shift
      ;;
    --aws)
      DATABASE="--configFile config/aws/dynamo.json --configFile config/aws/s3.json"
      shift
      ;;
    --auth)
      MODULES="$MODULES --configFile config/auth/auth.json --configFile config/local/grizzly-auth.json"
      shift
      ;;
    --id)
      MODULES="$MODULES --configFile config/local/id.json --configFile config/local/grizzly-id.json"
      shift
      ;;
    --ziniki)
      MODULES="$MODULES --configFile config/core/ziniki.json --configFile config/core/services.json --configFile config/local/grizzly-ziniki.json"
      shift
      ;;
    --trace=*)
      TRACE="`echo $1 | sed 's/--trace=//'`"
      shift
      ;; 
    --info)
      DEBUG=INFO
      shift
      ;;
    --debug)
      DEBUG=DEBUG
      shift
      ;;
    *)
      break
      ;;
  esac
done

if [ -z "$DATABASE" -a -z "$CUSTOM" ] ; then # use memory database
  DATABASE="--configFile config/local/memory.json"
fi

if [ -z "$MODULES"  -a -z "$CUSTOM" ] ; then # everything
  MODULES="--configFile config/auth/auth.json --configFile config/auth/id.json --configFile config/core/ziniki.json --configFile config/core/services.json --configFile config/local/grizzly-auth.json --configFile config/local/grizzly-ziniki.json --configFile config/local/grizzly-id.json"
fi

if [ ! -z "$TRACE"  -a -z "$CUSTOM" ] ; then
  JAVAOPTS="$JAVAOPTS -Dstreamlogger.read.file=$TRACE"
else
  JAVAOPTS="$JAVAOPTS -Dstreamlogger.defaultLevel=$DEBUG"
fi

java \
  -Djdk.tls.client.protocols=TLSv1.2 \
  -Dui4j.headless=true \
  -Dglass.platform=Monocle \
  -Dmonocle.platform=Headless \
  -Dprism.order=sw \
  -Dziniki.disable.openid.certs=disable \
  $JAVAOPTS \
  -cp "$root"/'lib/*' \
   org.ziniki.server.main.ZinikiMain --root "$root" $DATABASE $MODULES "$@"