lib/update.operations
branchdns-new
changeset 85 4ad9c9b7cd0e
parent 84 77df429f63a3
child 88 52d058780506
--- 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