#!/usr/bin/sh
#
# NetXMS reporting server startup script
# Copyright (c) 2021-2026 Raden Solutions
#

###############################################################################
# Defaults
JAVA_OPTIONS="$JAVA_OPTIONS -Djava.awt.headless=true -Xms512m -Xmx1024m"

if [ -z $NETXMS_HOME ]; then
  NETXMS_HOME="/usr"
  WORKSPACE="/var/lib/netxms/nxreportd"
  BINDIR="/usr/bin"
else
  WORKSPACE="$NETXMS_HOME/var/lib/nxreportd"
  BINDIR="$NETXMS_HOME/bin"
fi

###############################################################################
NXREPORTD_JAR_FILE=/usr/lib64/netxms/java/nxreportd-6.1.3.jar
if [ ! -r $NXREPORTD_JAR_FILE ]; then
  NXREPORTD_JAR_FILE=$NETXMS_HOME/lib/netxms/java/nxreportd-6.1.3.jar
fi

show_usage_and_exit() {
  cat <<END
NetXMS Reporting Server
Copyright (c) 2021-2025 Raden Solutions

SYNOPSIS

	$0 [-hd] [-D PROPERTY] [-l LOGFILE] [-w WORKSPACE]

DESCRIPTION
	The following options are available:

	-h
		Show this help.

	-d
		Run as daemon (in background)

	-D PROPERTY
		Define Java property

	-l LOGFILE
		Log all output to file LOGFILE

	-w WORKSPACE
		Set location of the workspace. Default: $WORKSPACE

END

  exit 1
}

while getopts 'dD:hl:w:' c; do
  case $c in
  h)
    show_usage_and_exit
    ;;
  d)
    DAEMON="yes"
    ;;
  D)
    JAVA_OPTIONS="$JAVA_OPTIONS -D$OPTARG"
    ;;
  l)
    JAVA_OPTIONS="$JAVA_OPTIONS -Dnxreportd.logfile=$OPTARG"
    ;;
  w)
    WORKSPACE="$OPTARG"
    ;;
  *)
    echo "Invalid option: $OPTARG" 1>&2
    show_usage_and_exit
    ;;
  :)
    echo "Invalid option: $OPTARG requires an argument" 1>&2
    show_usage_and_exit
    ;;
  esac
done

JAVA_OPTIONS="$JAVA_OPTIONS -Dnxreportd.workspace=$WORKSPACE -Dnxreportd.bindir=$BINDIR"

# Required for Oracle TNS names resolution
if [ ! -z $TNS_ADMIN ]; then
  JAVA_OPTIONS="$JAVA_OPTIONS -Doracle.net.tns_admin=$TNS_ADMIN"
else
  if [ ! -z $ORACLE_HOME ]; then
    JAVA_OPTIONS="$JAVA_OPTIONS -Doracle.net.tns_admin=$ORACLE_HOME/network/admin"
  fi
fi

if [ -x "$JAVA_HOME/bin/java" ]; then
  JAVA="$JAVA_HOME/bin/java"
else
  JAVA=$(which java)
fi

if [ -z $JAVA ]; then
  echo Java executable not found. Set JAVA_HOME or PATH.
  exit 1
fi

if [ "x$DAEMON" = "xyes" ]; then
  nohup $JAVA $JAVA_OPTIONS -jar $NXREPORTD_JAR_FILE >/dev/null 2>/dev/null &
else
  $JAVA $JAVA_OPTIONS -jar $NXREPORTD_JAR_FILE
fi
