#!/bin/bash

NEXUS_HOME="/usr/share/nexus"
NEXUS_USER="nexus"

# Find Java
JAVA_BIN=$(command -v java)

if [ -z "$JAVA_BIN" ]; then
    echo "ERROR: java not found in PATH"
    exit 1
fi

# Resolve symbolic links
JAVA_BIN=$(readlink -f "$JAVA_BIN")

# Derive JAVA_HOME
APP_JAVA_HOME="${JAVA_BIN%/bin/java}"

# Validate
if [ ! -x "$APP_JAVA_HOME/bin/java" ]; then
    echo "ERROR: Invalid Java installation: $APP_JAVA_HOME"
    exit 1
fi

echo "Using Java: $APP_JAVA_HOME"

case "$1" in
    start)
        echo "Starting Nexus..."
        su -s /bin/sh - "$NEXUS_USER" -c \
            "APP_JAVA_HOME='$APP_JAVA_HOME' '$NEXUS_HOME/bin/nexus' start"
        ;;

    stop)
        echo "Stopping Nexus..."
        su -s /bin/sh - "$NEXUS_USER" -c \
            "'$NEXUS_HOME/bin/nexus' stop"
        ;;

    restart)
        "$0" stop
        sleep 2
        "$0" start
        ;;

    status)
        su -s /bin/sh - "$NEXUS_USER" -c \
            "'$NEXUS_HOME/bin/nexus' status"
        ;;

    run)
        su -s /bin/sh - "$NEXUS_USER" -c \
            "APP_JAVA_HOME='$APP_JAVA_HOME' '$NEXUS_HOME/bin/nexus' run"
        ;;

    *)
        echo "Usage: $0 {start|stop|restart|status|run}"
        exit 1
        ;;
esac

exit 0