# We load the "non interactive" profile
. /opt/metwork-mfbus-master/share/profile

MFADMIN_HOSTNAME=$(env |grep "^MFBUS_ADMIN_HOSTNAME=" |awk -F '=' '{print $2;}')
MFADMIN_HOSTNAME_IP=$(env |grep "^MFBUS_ADMIN_HOSTNAME_IP=" |awk -F '=' '{print $2;}')

function __prompt_without_x_mode() {
    PLUGIN_NAME=${MFBUS_CURRENT_PLUGIN_NAME}
    if test "${PLUGIN_NAME}" != ""; then
        if test "mfbus" != "`whoami`"; then
            export LP_PS1_PREFIX="${LP_MARK_BATTERY}MFBUS, plugin_env: ${PLUGIN_NAME}${LP_MARK_BATTERY}"
        else
            export LP_PS1_PREFIX="${LP_MARK_BATTERY}plugin_env: ${PLUGIN_NAME}${LP_MARK_BATTERY}"
        fi
    elif test "${VIRTUAL_ENV:-}" != ""; then
        local VENV_NAME=$(basename "${VIRTUAL_ENV}")
        if test "mfbus" != "`whoami`"; then
            export LP_PS1_PREFIX="${LP_MARK_BATTERY}MFBUS, venv: ${VENV_NAME}${LP_MARK_BATTERY}"
        else
            export LP_PS1_PREFIX="${LP_MARK_BATTERY}venv: ${VENV_NAME}${LP_MARK_BATTERY}"
        fi
        local PYTHON_MODE=${METWORK_PYTHON_MODE:-3}
        local N=$(is_layer_loaded python${PYTHON_MODE}@mfext 2>/dev/null)
        if test "${N}" != "0"; then
            layer_unload python${PYTHON_MODE}_core@mfext >/dev/null 2>&1
            layer_load python${PYTHON_MODE}_core@mfext >/dev/null 2>&1
            PATH=$(_field_prepend "${PATH}" "${VIRTUAL_ENV}/bin")
            export PATH
            unset PYTHONPATH
        fi
    else
        if test "mfbus" != "`whoami`"; then
            export LP_PS1_PREFIX="${LP_MARK_BATTERY}MFBUS${LP_MARK_BATTERY}"
        fi
    fi
    unset PLUGIN_NAME
    local X_MODE=`echo $- |grep -c 'x'`
    if test ${X_MODE} -gt 0; then
        # we temporary remove the -x mode before loading
        # the prompt
        set +x
    fi
    #__lp_set_prompt
    if test ${X_MODE} -gt 0; then
        set -x
    fi
}

# Prompt
if test "${LIQUIDPROMPT}" != "0"; then
    if test -f /opt/metwork-mfext-master/opt/core/share/liquidprompt/liquidprompt; then
        # We load liquidprompt as a prompt
        export LP_ENABLE_TEMP=0
        export LP_ENABLE_PERM=0
        export LP_ENABLE_LOAD=0
        export LP_ENABLE_BATT=0
        export LP_ENABLE_FOSSIL=0
        export LP_ENABLE_HG=0
        export LP_ENABLE_BZR=0
        export LP_ENABLE_RUNTIME=0
        export LP_ENABLE_VIRTUALENV=0
        PROMPT_COMMAND=__prompt_without_x_mode
        PLUGIN_NAME=$(env |grep "^${MFMODULE}_CURRENT_PLUGIN_NAME" |awk -F '=' '{print $2;}')
        . /opt/metwork-mfext-master/opt/core/share/liquidprompt/liquidprompt >/dev/null 2>&1
        unset PLUGIN_NAME
    fi
fi

CLEAR=`which_or_empty clear.sh`
if test "${CLEAR}" != ""; then
    alias clear="${CLEAR}"
fi
LAUNCH_CRONTAB=`which_or_empty _launch_crontab`
if test "${LAUNCH_CRONTAB}" != ""; then
    alias crontab="${LAUNCH_CRONTAB}"
fi
alias debug="metwork_debug"
alias pip="${MFEXT_HOME}/bin/pip_wrapper"

alias circusctl="_circusctl --endpoint ${MFBUS_CIRCUS_ENDPOINT} --timeout=10"

if test "${PROFILE_ERROR}" = "1"; then
    exit 1
fi

if test "${NOCLEAR}" != "1"; then
    clear
fi
cat <<EOF
           __  __      ___          __        _
          |  \/  |    | \ \        / /       | |
          | \  / | ___| |\ \  /\  / /__  _ __| | __
          | |\/| |/ _ \ __\ \/  \/ / _ \| '__| |/ /
          | |  | |  __/ |_ \  /\  / (_) | |  |   <
          |_|  |_|\___|\__| \/  \/ \___/|_|  |_|\_\\

EOF

if test "$(which_or_empty echo_bold)" != ""; then

    echo_bold "Welcome on ${MFHOSTNAME} (${MFHOSTNAME_FULL}, ${MFHOSTNAME_FULL_IP})"

    if test "${MFCONFIG:-}" != "GENERIC"; then
        echo "(module: ${MFMODULE}, config: ${MFCONFIG}, version: ${MFMODULE_VERSION})"
    else
        echo "(module: ${MFMODULE}, version: ${MFMODULE_VERSION})"
    fi
    echo
fi

uptime

echo

if test "$(which_or_empty echo_bold)" != ""; then
    if test "${MFADMIN_HOSTNAME}" != "null" -a "${MFADMIN_HOSTNAME}" != ""; then
        if test "${MFEXT_LAYER_MONITORING_LOADED:-}" != "1"; then
            echo_bold "WARNING: the [admin]/hostname value is configured for this module"
            echo_bold "         but the monitoring@mfext layer is not installed"
            echo_bold "         => you should consider installing it"
            echo
            echo "(hint: use 'yum install metwork-mfext-layer-monitoring'"
            echo "       as root to do that (or something similar adapted to your Linux"
            echo "       distribution)"
        else
            echo_bold "Sending metrics and logs to mfadmin module: (${MFADMIN_HOSTNAME}, ${MFADMIN_HOSTNAME_IP})"
        fi
        echo
    fi
fi
unset MFADMIN_HOSTNAME
unset MFADMIN_HOSTNAME_IP

# see https://github.com/metwork-framework/mfext/issues/544
# => can help to ignore some processes in list_metwork_processes.py output
export METWORK_LIST_PROCESSES_FORCE=0
