#!/bin/sh
#
# Copyright 2015 VMware, Inc.  All rights reserved.
#
# java_wrapper_vmon:
#    A wrapper around java binary which is responsible for fetching dynamic
#    jvm parameters from service start.cmd file under vmon data dir created
#    as part of prestart command or directly from cloudvm-ram-size. It then
#    exec's the java command with these additional parameters.
#

# Fail on any script error.
set -e

svc_name="`basename "$0"`"
vmon_svc_name=${svc_name/vmware-/""}
start_cmd_files[0]="$VMWARE_DATA_DIR/vmware-vmon/$vmon_svc_name.start.cmd"
start_cmd_files[1]="$VMWARE_DATA_DIR/vmware-vmon/$svc_name.start.cmd"

java_start_bin="$VMWARE_JAVA_HOME/bin/$svc_name.launcher"

# Fetch jvm parameters from svc_name.start.cmd if present.
for (( i=0; i<${#start_cmd_files[@]}; i++ ));
do
    if [ -f ${start_cmd_files[$i]} ]; then
        jvm_dynargs=`tr '\n' ' ' < ${start_cmd_files[$i]}`
        break
    fi
done

# If not found, fetch jvm parameters by executing cloudvm-ram-size
if [ -z "$jvm_dynargs" ]; then
    jvm_dynargs=`$VMWARE_CLOUDVM_RAM_SIZE -J $svc_name`
fi

# Create a hardlink to java binary.
if [ ! -e $java_start_bin ]; then
    ln $VMWARE_JAVA_HOME/bin/java $java_start_bin
fi

exec $java_start_bin $jvm_dynargs "$@"
