#!/usr/bin/env bash
#
# ionstop
# David Young
# Aug 20, 2008
#
# Modified Apr 17, 2023, perform killm only, gitlab issue #212
#
# will quickly and completely stop an ion node.

# Check for multi-ION instances
if [ -z "${ION_NODE_LIST_DIR}" ];
then
    echo "This is a single-ION instance configuration. Run killm."
    sleep 1
    echo "killm"
    killm
else
    echo "This is a multi-ION instance configuration. Killm not invoked."
    echo "Each module will shutdown individually. You may want to use a customized script."
    if [[ -z "${ION_NODE_WDNAME}" ]]; then
        echo "ION_NODE_WDNAME not defined. Assume we are already in the proper working directory."
        CURRENT_WD=$(pwd)
        echo "Shutdown ION instances associated with the current directory $CURRENT_WD"
    else
        CURRENT_WD=${ION_NODE_WDNAME}
        echo "Shutdown ION instances associated with the specified directory: $ION_NODE_WDNAME"
    fi

    echo "cfdpadmin ."
    cfdpadmin .
    sleep 1
    bpversion
    if [ $? -eq 6 ]; then
        echo "acsadmin ."
        acsadmin .
        sleep 1
        echo "imcadmin ."
        imcadmin .
        sleep 1
    fi
    echo "bpadmin ."
    bpadmin .
    sleep 1
    echo "ipnadmin ."
    ipnadmin .
    sleep 1
    echo "ltpadmin ."
    ltpadmin .
    sleep 1
    echo "ionadmin ."
    ionadmin .
    sleep 1
    echo "bsspadmin ."
    bsspadmin .
    sleep 1
    echo "ION instance in $CURRENT_WD ended, please double-check that all processes were terminated."
    echo "Use killm to clear out all remaining shared memory allocations and semaphore if needed."
fi
echo "ION node ended. Log file: ion.log"
echo ""