#!/bin/sh
# $NetBSD: script,v 1.1 2001/04/26 02:44:47 garbled Exp $

BACKUPDIR="/var/sushi"
CONFFILE="/etc/sysctl.conf"
BACKUP="${BACKUPDIR}/sysctl.conf"

if [ "$3" = "now" -o "$3" = "both" ]; then
	sysctl -w $1=$2
fi

if [ "$3" = "boot" -o "$3" = "both" ]; then
	echo "Saving changes..."

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

	# backup
	cp -p $CONFFILE $BACKUP

	# temporary file
	cp -p $BACKUP $BACKUP.new

	line=`grep -n $1 $BACKUP | cut -f1 -d:`
	# if no line, add new entry, otherwise edit the entry.
	if [ -z $line ]; then
		echo "$1=$2" >> $BACKUP.new
	else
		sed "${line}s/.*/$1=$2/" < $BACKUP > $BACKUP.new
		cp -p $BACKUP.new $BACKUP.old
		sed "${line}s/^#//" < $BACKUP.old > $BACKUP.new
	fi

	cp -p $BACKUP.new $CONFFILE
	if [ $? -eq 0 ]; then
		echo "Successfully wrote a new $CONFFILE"
		echo ""
		cat $CONFFILE
	fi

	rm -f $BACKUP.new $BACKUP.old
fi
