#!/bin/bash
#==============================================================================
# Copyright and license info is available in the LICENSE file included with
# the Server Deployment Package (SDP), and also available online:
# https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE
#------------------------------------------------------------------------------

# P4FTP base init script

# Do nothing unless $SDP_INSTANCE is defined.
export SDP_INSTANCE=${1:-Unset}

if [[ $SDP_INSTANCE == Unset ]]; then
   echo -e "\nError: The SDP_INSTANCE is not defined.\n."
   exit 1
fi

# Load SDP controlled shell environment.
source /p4/common/bin/p4_vars "$SDP_INSTANCE"
if [[ $? -ne 0 ]]; then
   echo -e "\nError: Failed to load SDP environment for instance $SDP_INSTANCE.\n"
   exit 1
fi

if [[ $(id -u) -ne 0 ]]; then
   echo "$0 can only be run as root."
   exit 1
fi

if [[ ! -x $P4FTPBIN ]]; then
   echo -e "\nError: $P4FTPBIN is not executable."
   exit 2;
fi

# See how we were called.
case "${2:-usage}" in
   start)
      $P4FTPBIN $P4FTPARGS
      ps -ef | grep "p4ftpd_${SDP_INSTANCE}" |grep -v grep|grep -v p4ftpd_${SDP_INSTANCE}_init|awk '{ print $2}' > $P4HOME/pid.p4ftpd_${SDP_INSTANCE}
   ;;
   status)
      PID=$(cat /p4/${INSTANCE}/pid.p4ftpd_${INSTANCE})
      PID=$(echo $PID)
      $PS -p $PID > /dev/null 2>&1
      if [[ $? -eq 0 ]]; then
         echo -e "\n$P4FTPBIN is running as pid $PID."
      else
         echo -e "\n$P4FTPBIN is NOT running."
      fi
   ;;
   stop)
      echo -n "Shutting down $P4FTPBIN: "
      PID=`cat /p4/${INSTANCE}/pid.p4ftpd_${INSTANCE}`
      kill $PID
      echo
   ;;
   restart)
      $0 $SDP_INSTANCE stop
      $0 $SDP_INSTANCE start
   ;;
   *)
      echo -e "\nUsage: $0 SDP_INSTANCE {start|stop|status|restart}\n"
      exit 1
   ;;
   esac

exit 0