#!/bin/bash
# Script called on module start for stopping services before setting module resources

unset POSIXLY_CORRECT
scriptName=$(basename "$0")
# Import utils functions
source "$SAFEUSERBIN/module_scripts_utils"

echo "Running $scriptName $*"

# Graceful stop
echo "--- Graceful stop"
[ -x $SAFEUSERBIN/stop_second ] && $SAFEUSERBIN/stop_second
[ -x $SAFEUSERBIN/stop_prim ]  && $SAFEUSERBIN/stop_prim
[ -x $SAFEUSERBIN/stop_both ] && $SAFEUSERBIN/stop_both

# Force stop
echo "--- Force stop"
[ -x $SAFEUSERBIN/stop_second ] && $SAFEUSERBIN/stop_second force
[ -x $SAFEUSERBIN/stop_prim ]  && $SAFEUSERBIN/stop_prim force
[ -x $SAFEUSERBIN/stop_both ] && $SAFEUSERBIN/stop_both force

# Array of service names as defined in argument -Services or in SERVICES configuration variable
servicesList=$(Get_ServicesArray --ScriptArgs "$*" --ReverseOrder true)
if [ -z "$servicesList" ]; then
    # No services found
    exit 0
fi
# Check of services found
echo "--- Check of SERVICES ${servicesList}"
IFS=',' read -r -a servicesArray <<< "$servicesList"
for serviceName in "${servicesArray[@]}"; do
    # Check the service status
    status=$(Check_Service -ServiceName "$serviceName" -Status "inactive")
    if [ "$status" != "inactive" ] && [ "$status" != "failed" ] ; then
        "$SAFE/safekit" printe "$scriptName: $serviceName not inactive"
        # Comment to not stop the module when it is not critical
        Stop_Module_And_Exit -ScriptName "$scriptName"
    fi
done