--- a/lib/update.operations Thu Dec 19 22:00:37 2013 +0200
+++ b/lib/update.operations Thu Dec 19 23:22:12 2013 +0200
@@ -106,49 +106,44 @@
## Update .serial number:
#
-# do_update_serial $serial
+# do_update_serial .../serials/$zone $serial
#
-# Shows old/new serial on debug.
function do_update_serial {
- local serial="$1"
+ local dst="$1"
+ local serial="$2"
- # read
- local old=$(test -e "$serial" && cat "$serial" || echo '')
-
- cmd $OPT/bin/pvl.dns-serial "$serial"
-
- # read
- local new=$(cat "$serial")
-
- debug " $old -> $new"
+ echo $serial > $dst
}
## Generate new serial for zone using pvl.dns-serial, if the zone data has changed:
#
-# update_serial $zone $deps...
+# update_serial .../serials/$zone $serial $deps...
#
# Supports SERIAL_FORCE/NOOP.
# Updates $SERIALS/$zone.serial.
function update_serial {
+ local dst="$1"; shift
local serial="$1"; shift
+
+ local old=$(test -e "$dst" && cat "$dst" || echo '')
# test
if [ $SERIAL_FORCE ]; then
- log_force "Updating $serial: forced"
+ log_force "Updating $dst: $old <- $serial: forced"
- do_update_serial "$serial"
+ do_update_serial "$dst" "$serial"
- elif ! check_update "$serial" "$@"; then
- log_skip "Updating $serial: not changed"
+ elif ! check_update "$dst" "$@"; then
+ log_skip "Updating $dst: $old <- $serial: not changed"
elif [ $SERIAL_NOOP ]; then
- log_noop "Updating $serial: skipped"
+ log_noop "Updating $dst: $old <- $serial: skipped"
else
- log_update "Updating $serial..."
+ log_update "Updating $dst: $old <- $serial"
- do_update_serial "$serial"
+ do_update_serial "$dst" "$serial"
fi
}
@@ -156,21 +151,20 @@
#
# update_zone out/zones/$zone in/zones/$zone var/serials/$zone
function update_zone {
- local out="$1"
- local src="$2"
- local serial="$3"
+ local out="$1"; shift
+ local src="$1"; shift
+ local serial="$1"; shift
local serial_opt=
if [ -n "$serial" -a -f "$serial" ]; then
serial_opt="--serial=$(cat "$serial")"
-
elif [ $SERIAL_NOOP ]; then
warn "$out: noop'd serial, omitting"
else
fail "$out: missing serial: $serial"
fi
- if check_update "$out" "$src" "$serial"; then
+ if check_update "$out" "$src" "$serial" "$@"; then
log_update "Generating $out <- $src..."
do_update "$out" $OPT/bin/pvl.dns-zone "$src" \
@@ -356,7 +350,7 @@
# commit_data
#
# Invokes `hg commit`, first showing the diff.
-function commit {
+function update_commit {
local repo=$1
local commit_msg="$COMMIT_MSG"
@@ -364,7 +358,7 @@
# operate?
if [ $COMMIT_FORCE ]; then
- log_force "$msg..."
+ log_force "$msg: $commit_msg"
do_commit "$commit_msg"
@@ -377,7 +371,7 @@
# still show diff, though
[ $LOG_DIFF ] && indent " " hg_diff $repo
else
- log_update "$msg..."
+ log_update "$msg: $commit_msg"
do_commit $repo "$commit_msg"
fi