#!/bin/bash

# We no longer use the "-q" option because it is not supported on
# the mac

moos_kill_list=$(ps -ef | egrep "MOOSDB|[pui][A-Z][a-z_A-Z]*" | grep '\.moos' | grep --invert-match xterm | cut -c 7-11)

if [[ ! -z $moos_kill_list ]]; then
    kill_list="$moos_kill_list"
fi

if [[ ! -z $kill_list ]]; then
    kill $@ ${kill_list} >& /dev/null
    echo "the moos is dead"
else
    echo "moos was not running, doing nothing."
fi

killall -9 iVelodyne pFeatureTracker pObstacleMgr    \
	uFldRescueMgr pPoseKeep pContactMgrV20       \
        pDeadManPost  pTaskManager iM200 iM300       \
	pMediator pSpoofNode uFldVoronoi pProxonoi   \
	pEncircle uFldTaskMonitor uFldAnemo          \
	uFldConvoyEval uSimHeron uSockComms          \
	pGeoSelect 

killall -9 uFldFlagManager uFldTagManager pGenRescue

killall -9 MOOSDB iRemote MOOSRemote iGPS iGPSMonitor pNav  \
        pHelm pHelmIvP pMarineViewer iMarineSim uSimMarine  \
        pLogger iPWMController MOOSDump pAntler umm         \
        iINS iDepth pScheduler pThermoTrack pNaFCon pSearch \
        pHuxley pMessageSim pBeamform uTermCommand pRealm   \
        pBearingTrack uMissionTester uSimMarineV22          \
	uFldLegRunMgr uFldLegRunEval

killall -9 pMOOSBridge  iVSA iCTD iCTDSBE49 pBearingsSim     \
        iPNICompass iMetaCompass iHeadingMonitor  pAEL       \
        iWifi p1BTracker p2BTracker pBearings uMS pTarget    \
        pRedirect pLoiterControl pTransponderAIS uMVS        \
        pMarinePID uTMS uMVS_Bluefin pEchoVar pMarinePIDV22  \
        pTrafficControl pShipsideViewer uRepeater uXMS       \
        pViewerRelay uHelmScope pClusterPriority zLoggerNG

killall -9 iMicroModem pRouter pFramer pMessageSim             \
        pCSVLogger pBearings_VSA pEchoVar pTrackQuality        \
        p1HTracker pGPSSim uBathy uCtdSim2 pTargetOpportunity  \
        pBearings_DURIP uProcessWatch uPlayBack pSubIndex      \
        pBearings_GENERIC pTargetSim pMBTracker zLoggerNG      \
	iModemSim pFunctionSender uFunctionViewer uFunctionVis \
        uSimBeaconRange uSimCurrent pBasicContactMgr           \
        uSimActiveSonar bngview pConvexHull pObstacleMgr       \
        pObstacleManager pContactMgrV20 uFldWrapDetect

killall -9 pSensorSim pArtifactMapper pNoiseSim uNafconSplitter    \
        pBlast pSweepLines pNSWCPC pXRelay pXRelayTest alogview  \
        pAcommsHandler pCTDCodec pBTRCodec iDAS iOEX pGateway   \
        pAcommsPoller pArraySim pSimpleAcousticSim geoview      \
        pMultiTargetSim pMultiAcousticSim iOS5000 pGeneralCodec
        
        
killall -9 pCBF pBTracker pTrackMonitor uTimerScript pDTSP         \
        pTallyomatic pNodeReporter iCommStack pMissionCtl iDSP  \
        pNotDTSP pBoundingCircle pRIDManager uLogView           \
        uLogViewHelm uLogViewIPF pFooBar pFoobar                \
        pNotDTSP pBoundingCircle pRIDManager iKayakControlBoard

killall -9 pFleetControl uFldScope uFldContactRangeSensor         \
        uFldPathCheck uFldNodeComms pSearchGrid pHostInfo      \
        uFldShoreBroker uFldNodeBroker uFldBeaconRangeSensor   \
        uFldHazardSensor uFldMessageHandler pGenPath pGenPath2 \
        pPointAssign uFldHazardMetric pHandleSensorData        \
        uFldCTDSensor pFrontGridRender uPlotViewer uMAC        \
        pShare uFldGenericSensor uFldHazardMgr pGradeFrontEstimate pFrontEstimate

killall -9 pParticle uFldContactRangeSensorHP pUUVPath         \
        pWifiCheck uFldMessageSourcer pRangeSensorHandler      \
        pHunterPrey camera_example camera_example_server       \
        camera_example_viewer iHuxley uFldCollisionDetect iSay \
        uLoadWatch pPolePath sedit pEvalLoiter uMemWatch       \
        uSimHeron uSockComms pMapMarkers

killall -9 uSpeechRec uDialogManager

killall -9 pAntler pLogger 

echo Done - Killed all MOOS-Related Processes.....