#!/bin/sh
if [ -z "$1" ]; then
	echo "Syntax: $0 <interface> <psk template> <length> [<interface> <psk template> <length> ...]" >&2
	exit 1
fi
UPD=0
while [ -n "$1" -a -n "$2" -a -n "$3" ]; do
	# FIXME: using hex (16^<length>) to weak for short PSKs, find way to emit more complex keys,
	# i.e. base64 (64^<length>)
	PSK="$(date "+$2" | md5sum - | sed "s/^\(\w\{$3\}\).*/\1/; y/0123456789/ghijkmnopq/")"
	if [ "$PSK" != "$(nvram get "$1_wpa_psk")" ]; then
		nvram set "$1_wpa_psk=$PSK"
		UPD=1
	fi
	shift 3
done
if [ "$UPD" -gt 0 ]; then
	# FIXME: find better way to restart NAS
	killall -9 nas
	sleep 1
	/sbin/check_ps
fi
