bin/update
changeset 627 a81206440be2
parent 624 889ecd6dcb4e
child 628 b10ad946d01d
--- a/bin/update	Thu Feb 26 19:49:10 2015 +0200
+++ b/bin/update	Thu Feb 26 21:38:09 2015 +0200
@@ -1,135 +1,21 @@
 #!/bin/bash
-# vim: set ft=sh :
-
-# Bootstrap
-if [ $0 == './update' ]; then
-    SRV=$(pwd)
-    OPT=/opt/pvl-verkko
-    LIB=/opt/pvl-dns/lib
-else
-    SRV=${SRV:-/srv/verkko}
-    OPT=${SRV:-/opt/pvl-verkko}
-    LIB=/opt/pvl-dns/lib
-    cd $SRV
-fi
-
-source $LIB/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
-        update_hosts_forward    "var/zones/hosts/forward/$zone"     "$zone" \
-            etc/hosts/forward/$zone/*
-    done
-
-    log "Updating DHCP hosts..."
-    for hosts in $(list etc/hosts/dhcp); do
-        update_hosts_dhcp       "var/dhcp/hosts/$hosts.conf"        $hosts  \
-            $(expand_files "etc/hosts/dhcp/$hosts")
-    done
-
-    log "Updating reverse host zones..."
-    for zone in $(list_dirs etc/hosts/reverse); do
-        update_hosts_reverse    "var/zones/hosts/reverse/$zone"     "$zone" \
-            etc/hosts/reverse/$zone/*
-    done
-
-    ## Zones
-    log "Copying zone includes..."
-    for zone in $(list_files etc/zones/includes); do
-        copy                "var/zones/includes/$zone"      "etc/zones/includes/$zone"
-    done
 
-    log "Updating zone serials..."
-    for zone in $(list_files etc/zones); do
-        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" \
-            $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
-    done
-
-    log "Updating DHCP confs..."
-    for conf in $(list_files etc/dhcp); do
-        update_dhcp_conf    "var/dhcp/$conf"                "etc/dhcp/$conf"
-    done
-}
-
-function deploy {
-    ## Check
-    log "Testing zones..."
-    for zone in $(list_files etc/zones); do
-        check_zone          "var/zones/$zone"       $zone
-    done
-
-    log "Testing DHCP confs..."
-    for conf in var/dhcp/*.conf; do
-        check_dhcp          $conf
-    done
-
-    log "Reload zones..."
-        reload_zones
+SRV=${SRV:-.}
+SRC=${OPT:-.}
+OPT=${OPT:-./opt}
+ETC=${ETC:-$SRV/etc}
+LIB=${LIB:-$SRC/lib}
+VAR=${VAR:-$SRV/var}
 
-    log "Reload dhcp..."
-        reload_dhcp
-
-}
-
-## Main entry point
-function main {
-    log_init
-
-    parse_args "$@"
 
-    ## Input dirs
-    for dir in etc etc/zones etc/hosts; do
-        [ -d $dir ] || die "Missing directory: $dir"
-    done
-    
-    ## Output dirs
-    ensure_dir      var
-    for dir in var/dhcp var/zones var/include-cache var/serials; do
-        ensure_dir  $dir
-    done
-    for dir in var/dhcp/hosts; do
-        ensure_dir  $dir
-    done
-    for dir in var/zones/includes var/zones/hosts; do
-        ensure_dir  $dir
-    done
-    for dir in var/zones/hosts/forward var/zones/hosts/reverse; do
-        ensure_dir  $dir
-    done
+. $LIB/pvl/main.sh
 
-    ## Go
-    commit
-    update
-    deploy
-}
+MODULES=(log commit apply update)
+MODULE=update
+
+. $LIB/pvl/commit.sh
+. $LIB/pvl/apply.sh
+
+. $LIB/pvl/hosts/update.sh
 
 main "$@"