#!/bin/sh

# Package configuration values
NAME="OpenSSH"
PREFIX="/var/packages/${SYNOPKG_PKGNAME:-${NAME}}/target"
PATH=$PREFIX/bin:$PATH
DAEMON=sshd
LOGFILE=$PREFIX/${NAME}.log

generating_keys()
{
if [ ! -f ${LOGFILE} ]; then touch ${LOGFILE} && echo -e -n > ${LOGFILE}; fi
if  [ ! -e $PREFIX/etc/ssh_host_rsa_key ] && \
    [ ! -e $PREFIX/etc/ssh_host_dsa_key ] && \
    [ ! -e $PREFIX/etc/ssh_host_ecdsa_key ]; then
    echo -e -n "  $(date)\n  Generating keys/certs...\n" >> ${LOGFILE}
    echo -e -n "\n  $(date)\n  SSH RSA key.  This may take several minutes." >> ${LOGFILE}
    ssh-keygen -t rsa -f $PREFIX/etc/ssh_host_rsa_key -N "" >> ${LOGFILE}
    echo -e -n "\n  $(date)\n  SSH DSA key.  This may take several minutes." >> ${LOGFILE}
    ssh-keygen -t dsa -f $PREFIX/etc/ssh_host_dsa_key -N "" >> ${LOGFILE}
    echo -e -n "\n  $(date)\n  SSH ECDSA key.  This may take several minutes." >> ${LOGFILE}
    ssh-keygen -t ecdsa -f $PREFIX/etc/ssh_host_ecdsa_key -N "" >> ${LOGFILE}
fi
    echo -e -n "\n  $(date)\n" >> ${LOGFILE}
}

case "$1" in
  start)
    generating_keys
    echo "  Starting ${NAME}" >> ${LOGFILE}
    $PREFIX/bin/${DAEMON} || echo " - error" >> ${LOGFILE}
    ;;
  stop)
    generating_keys
    echo "  Stoping ${NAME}" >> ${LOGFILE}
    pkill $DAEMON || pkill -9 $DAEMON
    ;;
  restart|reload|force-reload)
    $0 stop ; sleep 3 ; $0 start || exit 1
    ;;
  status)
    pgrep ${DAEMON} > /dev/null 2>&1 && exit 0 || exit 1
    ;;
  log)
    echo $LOGFILE ; exit 0
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload|force-reload|status|log}" >&2
    exit 1
    ;;
esac

exit 0
