50 apply_dir $dir |
53 apply_dir $dir |
51 done |
54 done |
52 } |
55 } |
53 |
56 |
54 function update_commit { |
57 function update_commit { |
55 ## Commit |
58 # TODO: pre-commit test host files |
56 # pre-commit check |
|
57 log "Testing hosts..." |
|
58 for hosts in $(list_files etc/hosts); do |
|
59 log_warn "TODO: check_hosts $hosts" |
|
60 done |
|
61 |
59 |
62 # commit, unless noop'd |
|
63 log "Commit..." |
60 log "Commit..." |
64 commit $SRV |
61 commit $SRV |
65 } |
62 } |
66 |
63 |
67 function update_update { |
64 function update_update { |
68 if hg_modified etc; then |
65 if commit_modified $SRV; then |
69 serial=$(unix_time) |
66 serial=$(unix_time) |
70 log_warn "Using local unix time for uncommited changes: $serial" |
67 log_warn "Using local unix time for uncommited changes: $serial" |
71 else |
68 else |
72 serial=$(hg_time etc) |
69 serial=$(commit_time $SRV) |
73 log_update "Using HG commit timestamp: $serial" |
70 log_update "Using HG commit timestamp: $serial" |
74 fi |
71 fi |
75 |
72 |
76 ## Hosts |
73 ## Hosts |
77 log "Updating forward host zones..." |
74 log "Updating forward host zones..." |
78 for zone in $(list_dirs etc/hosts/forward); do |
75 for zone in $(list_dirs etc/zones/forward); do |
79 update_hosts_forward "var/zones/hosts/forward/$zone" "$zone" \ |
76 update_hosts_forward "var/zones/forward/$zone" "etc/zones/forward/$zone/" |
80 etc/hosts/forward/$zone/* |
77 done |
|
78 |
|
79 log "Updating reverse host zones..." |
|
80 for zone in $(list_dirs etc/zones/reverse); do |
|
81 update_hosts_reverse "var/zones/reverse/$zone" "etc/zones/reverse/$zone/" |
81 done |
82 done |
82 |
83 |
83 log "Updating DHCP hosts..." |
84 log "Updating DHCP hosts..." |
84 for hosts in $(list etc/hosts/dhcp); do |
85 for hosts in $(list etc/dhcp/hosts); do |
85 update_hosts_dhcp "var/dhcp/hosts/$hosts.conf" $hosts \ |
86 update_hosts_dhcp "var/dhcp/hosts/$hosts.conf" "etc/dhcp/hosts/$hosts" |
86 $(expand_files "etc/hosts/dhcp/$hosts") |
|
87 done |
|
88 |
|
89 log "Updating reverse host zones..." |
|
90 for zone in $(list_dirs etc/hosts/reverse); do |
|
91 update_hosts_reverse "var/zones/hosts/reverse/$zone" "$zone" \ |
|
92 etc/hosts/reverse/$zone/* |
|
93 done |
87 done |
94 |
88 |
95 ## Zones |
89 ## Zones |
96 log "Copying zone includes..." |
90 log "Copying zone includes..." |
97 for zone in $(list_files etc/zones/includes); do |
91 for zone in $(list_files etc/zones/includes); do |
98 copy "var/zones/includes/$zone" "etc/zones/includes/$zone" |
92 update_zone_include "var/zones/includes/$zone" "etc/zones/includes/$zone" |
99 done |
|
100 |
|
101 log "Updating zone serials..." |
|
102 for zone in $(list_files etc/zones); do |
|
103 update_serial "var/serials/$zone" $serial \ |
|
104 "etc/zones/$zone" $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/) |
|
105 done |
93 done |
106 |
94 |
107 log "Updating zones..." |
95 log "Updating zones..." |
108 for zone in $(list_files etc/zones); do |
96 for zone in $(list_files etc/zones); do |
109 update_zone "var/zones/$zone" "etc/zones/$zone" "var/serials/$zone" \ |
97 zone_includes=$(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/) |
110 $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/) |
98 |
|
99 update_zone_serial "var/serials/$zone" $serial \ |
|
100 "etc/zones/$zone" $zone_includes |
|
101 |
|
102 update_zone "var/zones/$zone" "etc/zones/$zone" "var/serials/$zone" \ |
|
103 $zone_includes |
111 done |
104 done |
112 |
105 |
113 log "Updating DHCP confs..." |
106 log "Updating DHCP confs..." |
114 for conf in $(list_files etc/dhcp); do |
107 for conf in $(list_files etc/dhcp); do |
115 update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf" |
108 update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf" |
116 done |
109 done |
117 } |
110 } |
118 |
111 |
119 function update_reload { |
112 function update_reload { |
120 ## Check |
113 ## Check |
121 log "Testing zones..." |
114 log "Testing zones..." |
122 for zone in $(list_files etc/zones); do |
115 for zone in $(list_files etc/zones); do |
123 check_zone "var/zones/$zone" $zone |
116 test_zone "var/zones/$zone" $zone |
124 done |
117 done |
125 |
118 |
126 log "Testing DHCP confs..." |
119 log "Testing DHCP confs..." |
127 for conf in var/dhcp/*.conf; do |
120 for conf in $(list_files var/dhcp); do |
128 check_dhcp $conf |
121 test_dhcp "var/dhcp/$conf" |
129 done |
122 done |
130 |
123 |
131 log "Reload zones..." |
124 log "Reload zones..." |
132 reload_zones |
125 reload_zones |
133 |
126 |