#!/bin/sh
# $NetBSD: script,v 1.3 2005/01/18 18:12:55 peter Exp $

BACKUPDIR="/var/sushi"
CONFFILE="/etc/ssh/sshd_config"
BACKUP="${BACKUPDIR}/sshd_config"

echo "Saving changes..."

if [ ! -d $BACKUPDIR ]; then
        mkdir $BACKUPDIR
        chown root:wheel $BACKUPDIR
        chmod 700 $BACKUPDIR
fi

# create a backup
cp -p $CONFFILE $BACKUP
if [ $? -ne 0 ]; then
	echo "Can't create a backup"
	exit 1
fi

if [ "$1" = "yes" ]; then
	RESTART=yes
fi
shift

if [ "$2" = "yes" ]; then
	SFTP=yes
fi
shift

OPT=`cat /usr/share/sushi/system/sshdconf/form \
	| sed -e 's/.*script[1-9],\(.*\) *.*/\1/' | sed -e 's/,.*//' \
	| awk '{print $1'} | egrep -v '^(#|list:|blank:|Subsystem)'`
echo -n "# Generated by sushi on " > $CONFFILE
date >>$CONFFILE
a=1
for i in $OPT
do
	ANS=$(echo `eval echo \\$${a}`)
	if [ -n "$ANS" ]; then
		echo "$i $ANS" >> $CONFFILE
	fi
	a=`expr $a + 1`
done

if [ ! -z "$SFTP" ]; then
	echo "Subsystem	sftp	/usr/libexec/sftp-server" >> $CONFFILE
fi

chmod 644 $CONFFILE
chown root:wheel $CONFFILE
echo "Successfully wrote a new sshd_config file"

if [ ! -z "$RESTART" ]; then
	/etc/rc.d/sshd reload
fi
