diff -r 77df429f63a3 -r 4ad9c9b7cd0e lib/update.operations --- a/lib/update.operations Tue Dec 17 01:17:49 2013 +0200 +++ b/lib/update.operations Tue Dec 17 02:06:53 2013 +0200 @@ -4,13 +4,13 @@ # Operations on zonefiles/hosts/whatever function link { - local out=$1 - local tgt=$2 + local out="$1" + local tgt="$2" - if check_link $out $tgt; then + if check_link "$out" "$tgt"; then log_update "Linking $out -> $tgt..." - do_link $out $tgt + do_link "$out" "$tgt" else log_skip "Linking $out -> $tgt: not changed" @@ -18,14 +18,14 @@ } function copy { - local out=$1 - local src=$2 + local out="$1" + local src="$2" - if check_update $out $src; then + if check_update "$out" "$src"; then log_update "Copying $out <- $src..." - do_update $out \ - cat $src + do_update "$out" \ + cat "$src" else log_skip "Copying $out <- $src: not changed" fi @@ -36,53 +36,36 @@ # check $src $cmd $args... # function check { - local src=$1; shift - local cmd=$1; shift + local src="$1"; shift + local cmd="$1"; shift - if cmd_test $cmd -q "$@"; then + if cmd_test "$cmd" -q "$@"; then log_skip "Check $src: OK" else log_error " Check $src: Failed" - indent " " $cmd "$@" + indent " " "$cmd" "$@" exit 1 fi } -## Hosts -## Update hosts from verbatim from input zone data: -# -# copy_hosts $ZONES/$zone $DATA/$base -# -# Writes updated zone to $zone, deps on $base. -function copy_hosts { - local zone=$1 - local base=$2 - - # XXX: filenames given directly - local out=$zone - local src=$base - - copy $out $src -} - ## Generate forward zone from hosts hosts using pvl.hosts-dns: # # update_hosts_forward out/hosts/$hosts $hosts in/hosts/$hosts function update_hosts_forward { - local out=$1; shift - local domain=$1; shift - local src=$1; shift + local out="$1"; shift + local domain="$1"; shift + local src="$1"; shift - if check_update $out $src "$@"; then + if check_update "$out" "$src" "$@"; then log_update "Generating forward hosts zone $out <- $src..." - do_update $out $OPT/bin/pvl.hosts-dns \ + do_update "$out" $OPT/bin/pvl.hosts-dns \ --hosts-charset=$CHARSET \ - --forward-zone=$domain \ - $src "$@" + --forward-zone="$domain" \ + "$src" "$@" else log_skip "Generating forward hosts $out <- $src: not changed" @@ -108,17 +91,17 @@ # # update_hosts_reverse out/hosts/$reverse $reverse in/hosts/$hosts function update_hosts_reverse { - local out=$1; shift - local reverse=$1; shift - local src=$1; shift + local out="$1"; shift + local reverse="$1"; shift + local src="$1"; shift - if check_update $out $src "$@"; then + if check_update "$out" "$src" "$@"; then log_update "Generating reverse hosts zone $out <- $src..." - do_update $out $OPT/bin/pvl.hosts-dns \ + do_update "$out" $OPT/bin/pvl.hosts-dns \ --hosts-charset=$CHARSET \ - --reverse-zone=$reverse \ - $src "$@" + --reverse-zone="$reverse" \ + "$src" "$@" else log_skip "Generating reverse hosts $out <- $src: not changed" @@ -131,15 +114,15 @@ # # Shows old/new serial on debug. function do_update_serial { - local serial=$1 + local serial="$1" # read - local old=$(test -e $serial && cat $serial || echo '') + local old=$(test -e "$serial" && cat "$serial" || echo '') - cmd $OPT/bin/pvl.dns-serial $serial + cmd $OPT/bin/pvl.dns-serial "$serial" # read - local new=$(cat $serial) + local new=$(cat "$serial") debug " $old -> $new" } @@ -152,15 +135,15 @@ # Supports SERIAL_FORCE/NOOP. # Updates $SERIALS/$zone.serial. function update_serial { - local serial=$1; shift + local serial="$1"; shift # test if [ $SERIAL_FORCE ]; then log_force "Updating $serial: forced" - do_update_serial $serial + do_update_serial "$serial" - elif ! check_update $serial "$@"; then + elif ! check_update "$serial" "$@"; then log_skip "Updating $serial: not changed" elif [ $SERIAL_NOOP ]; then @@ -169,113 +152,28 @@ else log_update "Updating $serial..." - do_update_serial $serial + do_update_serial "$serial" fi } -## Link serial for zone from given base-zone: +## Generate zone file from source using pvl.dns-zone: # -# link_serial $zone $base -function link_serial { - local zone=$1 - local base=$2 - - local out=$SERIALS/$zone.serial - local tgt=$SERIALS/$base.serial - - link $out $tgt -} - -## Update zone file verbatim from source: -# -# copy_zone $view $zone [$base] -# -# Copies changed $DATA/$base zone data to $ZONES/$view/$zone. -function copy_zone { - local view=$1 - local zone=$2 - local base=${3:-$zone} - - local out=$ZONES/$view/$zone - local src=$DATA/$base +# update_zone out/zones/$zone in/zones/$zone var/serials/$zone +function update_zone { + local out="$1" + local src="$2" + local serial="$3" - copy $out $src -} - -## Return the first zone that exists under $DATA/$name.zone -# -# base=$(choose_zone $name...) -function choose_zone { - # look - for name in "$@"; do - if [ $name ] && [ -e $DATA/$name.zone ]; then - echo $name - return 0 - fi - done - - # failed to find - die "Unable to find zone in $DATA/*.zone: $@" -} - -## Expand zone file from source using pvl.dns-zone: -# -# update_zone $view $zone [$base] -function update_zone { - local out=$1 - local src=$2 - local serial=$3 - - 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 \ - --serial $(cat $serial) + do_update "$out" $OPT/bin/pvl.dns-zone "$src" \ + --serial $(cat "$serial") else log_skip "Generating $out <- $src: not changed" fi } -## Link zone file to ues given shared zone. -# -# link_zone $view $zone [$base] -# -# Looks for shared zone at: -# $ZONES/$view/$base -# $ZONES/common/$base -function link_zone { - local view=$1 - local zone=$2 - local base=${3:-$zone} - - local out=$ZONES/$view/$zone - local tgt=$(choose_link $out $ZONES/$view/$base $ZONES/common/$base) - - link $out $tgt -} - -## Link dhcp file directly from data to $DHCP -function link_dhcp_conf { - local conf=$1 - local base=${2:-$conf} - - local out=$DHCP/$conf.conf - local tgt=$(choose_link $out $DHCP/$base.conf $DHCP_DATA/$base.conf) - - link $out $tgt -} - -## Copy dhcp conf from data to $DHCP -function copy_dhcp_conf { - local conf=$1 - local base=${2:-$conf} - - local out=$DHCP/$conf.conf - local src=$DHCP_DATA/$base.conf - - copy $out $src -} - ## Test hosts zone for validity using pvl.hosts-check: # # check_hosts .../hosts