#!/bin/bash

# Stop FPAC if it is running
if [ -e /var/run/fpacroute.pid ]; then
  kill $(cat /var/run/fpacroute.pid) >/dev/null 2>&1
  rm -f /var/run/fpacroute.pid
  pidof fpacroute >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "FPACRoute stopped successfully"
  else
    echo "FPACRoute failed to stop - check manually"
  fi
fi

if [ -e /var/run/fpacstat.pid ]; then
  kill $(cat /var/run/fpacstat.pid) >/dev/null 2>&1
  rm -f /var/run/fpacstat.pid
  pidof fpacstat >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "FPACStat stopped successfully"
  else
    echo "FPACStat failed to stop - check manually"
  fi
fi

if [ -e /var/run/fpacwpd.pid ]; then
  kill $(cat /var/run/fpacwpd.pid) >/dev/null 2>&1
  rm -f /var/run/fpacwpd.pid
  pidof fpacwpd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "FPACWpd stopped successfully"
  else
    echo "FPACWpd failed to stop - check manually"
  fi
fi

if [ -e /var/run/fpad.pid ]; then
  kill $(cat /var/run/fpad.pid) >/dev/null 2>&1
  rm -f /var/run/fpad.pid
  pidof fpad >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "FPAD stopped successfully"
  else
    echo "FPAD failed to stop - check manually"
  fi
fi

# Stop FLEXd if it is running
if [ -e /var/run/flexd.pid ]; then
  kill $(cat /var/run/flexd.pid) >/dev/null 2>&1
  rm -f /var/run/flexd.pid
  pidof flexd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "FLEXD stopped successfully"
  else
    echo "FLEXD failed to stop - check manually"
  fi
fi

# Stop beacon if it is running
if [ -e /var/run/beacon.pid ]; then
  kill $(cat /var/run/beacon.pid) >/dev/null 2>&1
  rm -f /var/run/beacon.pid
  pidof beacon >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "Beacon stopped successfully"
  else
    echo "Beacon failed to stop - check manually"
  fi
fi

# Stop netromd if it is running
if [ -e /var/run/netromd.pid ]; then
  kill $(cat /var/run/netromd.pid) >/dev/null 2>&1
  rm -f /var/run/netromd.pid
  pidof netromd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "Netromd stopped successfully"
  else
    echo "Netromd failed to stop - check manually"
  fi
fi

# Stop mheardd if it is running
if [ -e /var/run/mheardd.pid ]; then
  kill $(cat /var/run/mheardd.pid) >/dev/null 2>&1
  rm -f /var/run/mheardd.pid
  pidof mheardd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "Mheardd stopped successfully"
  else
    echo "Mheardd failed to stop - check manually"
  fi
fi

# Stop ax25d if it is running
if [ -e /var/run/ax25d.pid ]; then
  kill $(cat /var/run/ax25d.pid) >/dev/null 2>&1
  rm -f /var/run/ax25d.pid
  pidof ax25d >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "AX25d stopped successfully"
  else
    echo "AX25d failed to stop - check manually"
  fi
fi

# Stop ax25ipd if it is running
if [ -e /var/run/ax25ipd.pid ]; then
  kill $(cat /var/run/ax25ipd.pid) >/dev/null 2>&1
  rm -f /var/run/ax25ipd.pid
  pidof ax25ipd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "AX25ipd stopped successfully"
  else
    echo "AX25ipd failed to stop - check manually"
  fi
fi

# Stop ax25rtd if it is running
if [ -e /var/run/ax25rtd.pid ]; then
  kill $(cat /var/run/ax25rtd.pid) >/dev/null 2>&1
  rm -f /var/run/ax25rtd.pid
  pidof ax25rtd >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "AX25rtd stopped successfully"
  else
    echo "AX25rtd failed to stop - check manually"
  fi
fi

# Stop Monitor program
if [ -e /var/run/listen.pid ]; then
  kill $(cat /var/run/listen.pid) >/dev/null 2>&1
  rm -f /var/run/listen.pid
  pidof listen >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "Listen stopped successfully"
  else
    echo "Listen failed to stop - check manually"
  fi
fi

# Detach ROSE Devices
echo "Detaching ROSE devices:"
awk '/rose/{print $1}' /etc/ax25/rsports >> /tmp/ax25-config.tmp
read Select < /tmp/ax25-config.tmp
i=0
while [ "$Select" != "" ]; do
  let i=i+1
  awk ' NR == '$i' { print $1 }' /tmp/ax25-config.tmp > /tmp/ax25-config-tmp
  read Select < /tmp/ax25-config-tmp
  if [ "$Select" != "" ]; then
    ifconfig "$Select" down
    echo " $Select Stopped"
  fi
done
rm -f /tmp/ax25-config.tmp
rm -f /tmp/ax25-config-tmp
sleep 1

# Detach AX, and Netrom Devices
echo "Detaching AX and NR Devices:"
echo "$(ls /proc/sys/net/ax25)" > /tmp/ax25-config.tmp
#awk '/rose/{print $1}' /etc/ax25/rsports >> /tmp/ax25-config.tmp
read Select < /tmp/ax25-config.tmp
i=0
while [ "$Select" != "" ]; do
  let i=i+1
  awk ' NR == '$i' { print $1 }' /tmp/ax25-config.tmp > /tmp/ax25-config-tmp
  read Select < /tmp/ax25-config-tmp
  if [ "$Select" != "" ]; then
    ifconfig "$Select" down
    echo " $Select Stopped"
  fi
done
rm -f /tmp/ax25-config.tmp
rm -f /tmp/ax25-config-tmp

# Stop Kissattach
kill $(pidof kissattach) >/dev/null 2>&1
sleep 1
pidof kissattach >/dev/null
  RETVAL=$?
  if [ $RETVAL -eq 1 ]; then
    echo "Kisattach stopped successfully"
  else
    echo "Kissattach failed to stop - check manually"
  fi

echo "Ax25 Stopped"
# End of ax25-down

