bin/update
branchdns-new
changeset 95 a756f317d083
parent 94 1b02d8075676
child 98 a3734856e0fa
equal deleted inserted replaced
94:1b02d8075676 95:a756f317d083
    11     cd $SRV
    11     cd $SRV
    12 fi
    12 fi
    13 
    13 
    14 source lib/update
    14 source lib/update
    15 
    15 
    16 function update {
    16 function commit {
       
    17     ## Commit
       
    18     # pre-commit check
    17     log "Testing hosts..."
    19     log "Testing hosts..."
    18     for hosts in $(list_files etc/hosts); do
    20     for hosts in $(list_files etc/hosts); do
    19         log_warn "TODO: check_hosts $hosts"
    21         log_warn "TODO: check_hosts $hosts"
    20     done
    22     done
       
    23 
       
    24     # commit, unless noop'd
       
    25     log "Commit..."
       
    26         update_commit       etc
       
    27 }
       
    28 
       
    29 function update {
       
    30     if hg_modified etc; then
       
    31         serial=$(unix_time)
       
    32         log_warn "Using local unix time for uncommited changes: $serial"
       
    33     else
       
    34         serial=$(hg_time etc)
       
    35         log_update "Using HG commit timestamp: $serial"
       
    36     fi
    21 
    37 
    22     ## Hosts
    38     ## Hosts
    23     log "Updating forward host zones..."
    39     log "Updating forward host zones..."
    24     for zone in $(list_dirs etc/hosts/forward); do
    40     for zone in $(list_dirs etc/hosts/forward); do
    25         update_hosts_forward    "var/zones/hosts/forward/$zone"     "$zone" \
    41         update_hosts_forward    "var/zones/hosts/forward/$zone"     "$zone" \
    44         copy                "var/zones/includes/$zone"      "etc/zones/includes/$zone"
    60         copy                "var/zones/includes/$zone"      "etc/zones/includes/$zone"
    45     done
    61     done
    46 
    62 
    47     log "Updating zone serials..."
    63     log "Updating zone serials..."
    48     for zone in $(list_files etc/zones); do
    64     for zone in $(list_files etc/zones); do
    49         update_serial       "var/serials/$zone"             \
    65         update_serial       "var/serials/$zone"             $serial \
    50             "etc/zones/$zone" $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
    66             "etc/zones/$zone" $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
    51     done
    67     done
    52 
    68 
    53     log "Updating zones..."
    69     log "Updating zones..."
    54     for zone in $(list_files etc/zones); do
    70     for zone in $(list_files etc/zones); do
    55         update_zone         "var/zones/$zone"               "etc/zones/$zone"       "var/serials/$zone"
    71         update_zone         "var/zones/$zone"               "etc/zones/$zone"       "var/serials/$zone" \
       
    72             $(zone_includes var/include-cache/$zone etc/zones/$zone var/zones/)
    56     done
    73     done
    57 
    74 
    58     log "Updating DHCP confs..."
    75     log "Updating DHCP confs..."
    59     for conf in $(list_files etc/dhcp); do
    76     for conf in $(list_files etc/dhcp); do
    60         update_dhcp_conf    "var/dhcp/$conf"                "etc/dhcp/$conf"
    77         update_dhcp_conf    "var/dhcp/$conf"                "etc/dhcp/$conf"
    77         reload_zones
    94         reload_zones
    78 
    95 
    79     log "Reload dhcp..."
    96     log "Reload dhcp..."
    80         reload_dhcp
    97         reload_dhcp
    81 
    98 
    82     log "Commit..."
       
    83         commit      etc
       
    84 }
    99 }
    85 
   100 
    86 ## Main entry point
   101 ## Main entry point
    87 function main {
   102 function main {
    88     parse_args "$@"
   103     parse_args "$@"
    92         [ -d $dir ] || die "Missing directory: $dir"
   107         [ -d $dir ] || die "Missing directory: $dir"
    93     done
   108     done
    94     
   109     
    95     ## Output dirs
   110     ## Output dirs
    96     ensure_dir      var
   111     ensure_dir      var
    97     for dir in var/dhcp var/zones var/serials var/include-cache; do
   112     for dir in var/dhcp var/zones var/include-cache var/serials; do
    98         ensure_dir  $dir
   113         ensure_dir  $dir
    99     done
   114     done
   100     for dir in var/dhcp/hosts; do
   115     for dir in var/dhcp/hosts; do
   101         ensure_dir  $dir
   116         ensure_dir  $dir
   102     done
   117     done
   106     for dir in var/zones/hosts/forward var/zones/hosts/reverse; do
   121     for dir in var/zones/hosts/forward var/zones/hosts/reverse; do
   107         ensure_dir  $dir
   122         ensure_dir  $dir
   108     done
   123     done
   109 
   124 
   110     ## Go
   125     ## Go
       
   126     commit
   111     update
   127     update
   112     deploy
   128     deploy
   113 }
   129 }
   114 
   130 
   115 main "$@"
   131 main "$@"