bin/update
branchdns-new
changeset 618 a756f317d083
parent 617 1b02d8075676
child 621 a3734856e0fa
--- a/bin/update	Thu Dec 19 22:00:37 2013 +0200
+++ b/bin/update	Thu Dec 19 23:22:12 2013 +0200
@@ -13,12 +13,28 @@
 
 source lib/update
 
-function update {
+function commit {
+    ## Commit
+    # pre-commit check
     log "Testing hosts..."
     for hosts in $(list_files etc/hosts); do
         log_warn "TODO: check_hosts $hosts"
     done
 
+    # commit, unless noop'd
+    log "Commit..."
+        update_commit       etc
+}
+
+function update {
+    if hg_modified etc; then
+        serial=$(unix_time)
+        log_warn "Using local unix time for uncommited changes: $serial"
+    else
+        serial=$(hg_time etc)
+        log_update "Using HG commit timestamp: $serial"
+    fi
+
     ## Hosts
     log "Updating forward host zones..."
     for zone in $(list_dirs etc/hosts/forward); do
@@ -46,13 +62,14 @@
 
     log "Updating zone serials..."
     for zone in $(list_files etc/zones); do
-        update_serial       "var/serials/$zone"             \
+        update_serial       "var/serials/$zone"             $serial \
             "etc/zones/$zone" $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
     done
 
     log "Updating zones..."
     for zone in $(list_files etc/zones); do
-        update_zone         "var/zones/$zone"               "etc/zones/$zone"       "var/serials/$zone"
+        update_zone         "var/zones/$zone"               "etc/zones/$zone"       "var/serials/$zone" \
+            $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
     done
 
     log "Updating DHCP confs..."
@@ -79,8 +96,6 @@
     log "Reload dhcp..."
         reload_dhcp
 
-    log "Commit..."
-        commit      etc
 }
 
 ## Main entry point
@@ -94,7 +109,7 @@
     
     ## Output dirs
     ensure_dir      var
-    for dir in var/dhcp var/zones var/serials var/include-cache; do
+    for dir in var/dhcp var/zones var/include-cache var/serials; do
         ensure_dir  $dir
     done
     for dir in var/dhcp/hosts; do
@@ -108,6 +123,7 @@
     done
 
     ## Go
+    commit
     update
     deploy
 }