+#!/bin/bash
+# NSC -- DNSSEC key hash updater
+# (c) 2019 Martin Mares <mj@ucw.cz>
+
+set -e
+shopt -s nullglob
+. bin/shell-env
+
+if [ $# -gt 1 ] ; then
+ echo >&2 "Usage: $0 [<domain>]"
+ exit 1
+fi
+
+update ()
+{
+ local D=$1
+ local K=$KEYDIR/$D
+ local H=$K.hash
+ cat $K/*.key | sha1sum | cut -f1 -d' ' >$H.new
+ if [ ! -f $H ] || ! cmp -s $H $H.new ; then
+ echo "** $D: New key hash"
+ mv $H.new $H
+ else
+ echo "-- $D: No change"
+ rm $H.new
+ fi
+}
+
+if [ -z "$1" ] ; then
+ for DD in $KEYDIR/* ; do
+ if [ -d "$DD" ] ; then
+ update $(basename $DD)
+ fi
+ done
+ for H in $KEYDIR/*.hash ; do
+ B=$(basename $H .hash)
+ if [ ! -d $KEYDIR/$B ] ; then
+ echo "## $B: Deleted obsolete hash"
+ rm $H
+ fi
+ done
+else
+ update $1
+fi