--- 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