diff -r 1b02d8075676 -r a756f317d083 lib/update.operations --- 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