#!/bin/bash

# Parse any command line options.
args=`getopt fj "$@"`
eval set -- "$args"

os=${OSTYPE//[0-9.]/}
is_mac=0
[ $os = "darwin" ] && is_mac=1

CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
# get around sudo vagaries in setting $HOME
if [ "x$OPSC_HOME" = "x" ]; then
    if [ $is_mac = 1 ]; then
        OPSC_HOME="/Users/$USER"
    else
        OPSC_HOME=$(getent passwd $(id -u) | cut -d ':' -f 6)
    fi
fi
export HOME=$OPSC_HOME

cd "$(dirname "$0")"/../

if [ "x$OPSCENTERD_CONFIG_DIR" = "x" ]; then
    for include in ./local \
                   ./conf \
                   /etc/opscenter; do
        if [ -r "$include/opscenterd.conf" ]; then
            export OPSCENTERD_CONFIG_DIR=$include
            break
        fi
    done
fi

[ -n "$OPSCENTERD_CONFIG_DIR" ] || {
    echo "Could not find OpsCenter config dir." >&2
    exit 4
}

DEVMODE=0
if [ $OPSCENTERD_CONFIG_DIR = "./local" ]; then
    DEVMODE=1
fi

if [ $DEVMODE = 1 ]; then
    CLASSPATH="$(lein classpath):$OPSCENTERD_CONFIG_DIR"
    [ -z "$PYTHON" ] && \
        which python2.7 > /dev/null 2>&1 && PYTHON=$(which python2.7) && PY_VER=2.7
    SYSPATH=$($PYTHON -c "import site;\
    paths = site.getsitepackages();\
    blacklist = ['/usr/local/Cellar'];\
    is_blacklisted = lambda p: [b for b in blacklist if p.startswith(b)];\
    print ':'.join([p for p in paths if not is_blacklisted(p)])")
else
    CLASSPATH="$OPSCENTERD_CONFIG_DIR"
    JARS=$(find "$CWD/../lib/jvm" -name "*.jar" -type f)
    for d in $JARS; do
        CLASSPATH+=":$d"
    done
fi

LOCAL_DEV_PATHS="./src"
TAR_PATH="./src/jython/Lib/site-packages"
DEB_RPM_PATHS="/usr/share/opscenter/jython/Lib/site-packages:./lib/py"

JYTHONPATH=$LOCAL_DEV_PATHS:$TAR_PATH:$DEB_RPM_PATHS
export JYTHONPATH="$SYSPATH:$PYTHONPATH:$JYTHONPATH"