#!/usr/bin/bash -ue
#

if [[ -f /etc/debian_version ]]; then
    config=/etc/default/garb
else
    config=/etc/sysconfig/garb
fi #

log_failure() {
    echo " ERROR! $@"
}

program_start() {
    echo "Starting garbd"
    /usr/bin/garbd "$@"
}

start() {

    if grep -q -E '^# REMOVE' $config; then
        log_failure "Garbd config $config is not configured yet"
        return 0
    fi

    [ -f $config ] && . $config

    # Check that node addresses are configured
    if [[ -z "${GALERA_NODES:-}" ]]; then
        log_failure "List of GALERA_NODES is not configured"
        return 6
    fi
    if [[ -z "${GALERA_GROUP:-}" ]]; then
        log_failure "GALERA_GROUP name is not configured"
        return 6
    fi

    GALERA_PORT=${GALERA_PORT:-4567}

    OPTIONS="-a gcomm://${GALERA_NODES// /,}"
    # substitute space with comma for backward compatibility

    [ -n "${GALERA_GROUP:-}" ]   && OPTIONS="$OPTIONS -g '$GALERA_GROUP'"
    [ -n "${GALERA_OPTIONS:-}" ] && OPTIONS="$OPTIONS -o '$GALERA_OPTIONS'"
    [ -n "${LOG_FILE:-}" ]       && OPTIONS="$OPTIONS -l '$LOG_FILE'"
    [ -n "${WORK_DIR:-}" ]       && OPTIONS="$OPTIONS -w '$WORK_DIR'"

    eval program_start $OPTIONS
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    *)
        echo $"Usage: $0 {start}"
        exit 2
        ;;
esac

exit $?
