#!/usr/bin/sh

RUNNER_SCHEMA_DIR=$RELEASE_ROOT_DIR/share/schema
RUNNER_LOG_DIR="${RUNNER_LOG_DIR:-/var/log/riak}"
RUNNER_LOG_DIR="${RUNNER_LOG_DIR:-$RELEASE_ROOT_DIR/log}"
RUNNER_BASE_DIR=$RELEASE_ROOT_DIR
RUNNER_ETC_DIR="${RUNNER_ETC_DIR:-/etc/riak}"
RUNNER_ETC_DIR="${RUNNER_ETC_DIR:-$RELEASE_ROOT_DIR/etc}"
RUNNER_GEN_DIR="${RUNNER_GEN_DIR:-/var/lib/riak}"
RUNNER_GEN_DIR="${RUNNER_GEN_DIR:-$RUNNER_BASE_DIR}"
CUTTLEFISHCMD="$ERTS_DIR/bin/escript $RELEASE_ROOT_DIR/bin/cuttlefish"

CUTTLE_CONF_STATUS=0
CUTTLE_CONF_TMP="$(mktemp /tmp/XXXXX)"
trap 'rm -f "$CUTTLE_CONF_TMP"' EXIT

$CUTTLEFISHCMD -e $RUNNER_ETC_DIR -d $RUNNER_GEN_DIR/generated.conf -s $RUNNER_SCHEMA_DIR -c "$RUNNER_ETC_DIR/riak.conf" 1> "$CUTTLE_CONF_TMP" 2>&1 || CUTTLE_CONF_STATUS=$?

case $CUTTLE_CONF_STATUS in
    0)
        export CONFIG_PATH=$(sed -n -E 's/.*-config[[:space:]]+([^[:space:]]+).*/\1/p' "$CUTTLE_CONF_TMP" | tail -n 1)
        export VMARGS_PATH=$(sed -n -E 's/.*-vm_args[[:space:]]+([^[:space:]]+).*/\1/p' "$CUTTLE_CONF_TMP" | tail -n 1)
        if [ -z "$CONFIG_PATH" ] || [ -z "$VMARGS_PATH" ]; then
            echo "Cuttlefish did not emit -config/-vm_args paths; output:"
            cat "$CUTTLE_CONF_TMP"
            exit 1
        fi
        export RELX_CONFIG_PATH=$RUNNER_GEN_DIR/sys.config
        export RELX_VMARGS_PATH=$RUNNER_GEN_DIR/vm.args
        ln -sf $CONFIG_PATH $RELX_CONFIG_PATH
        ln -sf $VMARGS_PATH $RELX_VMARGS_PATH
        CUTTLE_CONF="$(< "$CUTTLE_CONF_TMP")"
        ;;
    *)
        echo "Cuttlefish failed! Oh no!:"
        cat $CUTTLE_CONF_TMP
        echo "Command that failed:"
        echo $CUTTLEFISHCMD -e $RUNNER_ETC_DIR -d $RUNNER_GEN_DIR/generated.conf -s $RUNNER_SCHEMA_DIR -c "$RUNNER_ETC_DIR/riak.conf"
        exit 1
esac

NODENAME=`egrep '^[ \t]*nodename[ \t]*=[ \t]*' "$RUNNER_ETC_DIR/riak.conf" 2> /dev/null | tail -n 1 | cut -d = -f 2`
if [ -z "$NODENAME" ]; then
    echo "vm.args needs to have a -name parameter."
    echo "  -sname is not supported."
    exit 1
else
    NAME_TYPE="-name"    
    NAME="${NODENAME# *}"
    export NAME

    PIPE_DIR="/tmp/erl_pipes/$NAME/"
    mkdir -p "$PIPE_DIR"
    export PIPE_DIR
fi
