--- a/lib/pvl/hosts/update.sh Thu Feb 26 21:38:09 2015 +0200
+++ b/lib/pvl/hosts/update.sh Thu Feb 26 22:36:05 2015 +0200
@@ -3,6 +3,9 @@
UPDATE_SERIAL=
UPDATE_RELOAD=
+. $LIB/pvl/hosts/dhcp.sh
+. $LIB/pvl/hosts/zone.sh
+
function update_help {
cat <<END
Update:
@@ -34,7 +37,7 @@
}
function update_setup {
- for dir in etc etc/zones etc/hosts; do
+ for dir in $ETC $ETC/zones $ETC/hosts; do
[ -d $dir ] || die "$dir: missing source directory"
done
@@ -52,67 +55,57 @@
}
function update_commit {
- ## Commit
- # pre-commit check
- log "Testing hosts..."
- for hosts in $(list_files etc/hosts); do
- log_warn "TODO: check_hosts $hosts"
- done
+ # TODO: pre-commit test host files
- # commit, unless noop'd
log "Commit..."
commit $SRV
}
function update_update {
- if hg_modified etc; then
+ if commit_modified $SRV; then
serial=$(unix_time)
log_warn "Using local unix time for uncommited changes: $serial"
else
- serial=$(hg_time etc)
+ serial=$(commit_time $SRV)
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/*
+ for zone in $(list_dirs etc/zones/forward); do
+ update_hosts_forward "var/zones/forward/$zone" "etc/zones/forward/$zone/"
+ done
+
+ log "Updating reverse host zones..."
+ for zone in $(list_dirs etc/zones/reverse); do
+ update_hosts_reverse "var/zones/reverse/$zone" "etc/zones/reverse/$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/*
+ for hosts in $(list etc/dhcp/hosts); do
+ update_hosts_dhcp "var/dhcp/hosts/$hosts.conf" "etc/dhcp/hosts/$hosts"
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/)
+ update_zone_include "var/zones/includes/$zone" "etc/zones/includes/$zone"
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/)
+ zone_includes=$(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
+
+ update_zone_serial "var/serials/$zone" $serial \
+ "etc/zones/$zone" $zone_includes
+
+ update_zone "var/zones/$zone" "etc/zones/$zone" "var/serials/$zone" \
+ $zone_includes
done
log "Updating DHCP confs..."
for conf in $(list_files etc/dhcp); do
- update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf"
+ update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf"
done
}
@@ -120,12 +113,12 @@
## Check
log "Testing zones..."
for zone in $(list_files etc/zones); do
- check_zone "var/zones/$zone" $zone
+ test_zone "var/zones/$zone" $zone
done
log "Testing DHCP confs..."
- for conf in var/dhcp/*.conf; do
- check_dhcp $conf
+ for conf in $(list_files var/dhcp); do
+ test_dhcp "var/dhcp/$conf"
done
log "Reload zones..."