#!/bin/bash

cd $(dirname "$0")

readonly BRAND='orchid'

get_property_value() {
    local property="$1"
    local properties_file_path="$2"
    [[ ! -f "$properties_file_path" ]] && return
    local property_line=$(grep "^\s*$property" "$properties_file_path")
    local property_value=$(echo "$property_line" | sed -r "s/^\s*$property\s*[:=]\s*(.*$)/\1/")
    echo -n "$property_value" | sed -e 's/\s*$//'
}

get_exit_code_file_path() {
    local properties_file_dir
    while [[ $# -gt 0 ]]; do
        case "$1" in
            -c|--config)
                shift
                properties_file_dir="$1"
                break
                ;;
            --config=*)
                properties_file_dir="${1:9}"
                break
                ;;
        esac
        shift
    done
    [[ -z $properties_file_dir ]] && properties_file_dir="$PWD"
    local logger_dir=$(get_property_value 'logger.dir' "$properties_file_dir/${BRAND}_server.properties")
    [[ -z $logger_dir ]] && logger_dir="$PWD"
    echo "$logger_dir/.${BRAND}_previous_exit_code"
}

trap '' SIGTERM SIGINT

/opt/$BRAND/bin/${BRAND}_server $* &
wait $!

exit_code=$?
echo $exit_code > $(get_exit_code_file_path $@)
exit $exit_code
