bin/update
author Tero Marttila <terom@paivola.fi>
Tue, 20 Mar 2012 14:35:38 +0200
changeset 58 6292cb597954
parent 54 b474e2e6f54e
child 61 22b58b938fd0
permissions -rwxr-xr-x
update: hg trust root
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#!/bin/bash
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
# vim: set ft=sh :
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
set -ue
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
     6
# resolve $0 -> bin/update
28
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
     7
self=$0
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
     8
while [ -L $self ]; do
31
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
     9
    tgt=$(readlink $self)
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    10
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    11
    if [ "${tgt:0:1}" == "/" ]; then
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    12
        self=$tgt
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    13
    else
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    14
        self=$(dirname $self)/$tgt
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    15
    fi
28
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
    16
done
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
    17
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    18
# Our bin dir, with scripts
28
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
    19
BIN=$(dirname $self)
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    21
# code root
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    22
CODE=$(dirname $BIN)
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    23
54
b474e2e6f54e update: docdoc
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
    24
# library code
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    25
LIB=$CODE/lib
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    26
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    27
## Data paths
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    28
# absolute path to data files; can be changed using -d
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    29
ROOT=$(pwd)
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    30
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    31
DATA=settings
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    32
ZONES=zones
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    33
SERIALS=$DATA
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    34
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    35
# hg repo to commit
49
755503f6fa93 update: move REPO back to $DATA
Tero Marttila <terom@paivola.fi>
parents: 48
diff changeset
    36
REPO=$DATA
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    38
## Settings used in lib
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    39
# Hide files under repo in commit diff output..
50
fdb9e03e423d update: hide .serial changes in hg_diff
Tero Marttila <terom@paivola.fi>
parents: 49
diff changeset
    40
REPO_HIDE='*.serial'
fdb9e03e423d update: hide .serial changes in hg_diff
Tero Marttila <terom@paivola.fi>
parents: 49
diff changeset
    41
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    42
# XXX: hosts data input charset?
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
PROCESS_ARGS='--input-charset latin-1'
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    45
# External bins
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
    46
NAMED_CHECKZONE=/usr/sbin/named-checkzone
58
6292cb597954 update: hg trust root
Tero Marttila <terom@paivola.fi>
parents: 54
diff changeset
    47
31
2b7aad3466c6 update: log_warn, -q; ensure_dir; link_zone paivola-reverse; indent error exit
Tero Marttila <terom@paivola.fi>
parents: 30
diff changeset
    48
HG=/usr/bin/hg
58
6292cb597954 update: hg trust root
Tero Marttila <terom@paivola.fi>
parents: 54
diff changeset
    49
HG_ARGS=(--config trusted.users=root)
6292cb597954 update: hg trust root
Tero Marttila <terom@paivola.fi>
parents: 54
diff changeset
    50
27
773c91a7547a update: deploy_zones
Tero Marttila <terom@paivola.fi>
parents: 26
diff changeset
    51
RNDC=/usr/sbin/rndc
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    53
# Path to rndc key, must be readable to run..
46
3613e93e4fd7 update: rndc: fail if no read perms on $RNDC_KEY
Tero Marttila <terom@paivola.fi>
parents: 45
diff changeset
    54
RNDC_KEY=/etc/bind/rndc.key
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
    55
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    56
## Library includes
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    57
# Command-line argument handling
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    58
source $LIB/update.args
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    59
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    60
# Logging
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    61
source $LIB/update.logging
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
    62
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    63
# Utility functions
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    64
source $LIB/update.utils
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
    65
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    66
# Dependency-based updates
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    67
source $LIB/update.updates
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
    68
54
b474e2e6f54e update: docdoc
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
    69
# Operations; the functions called from run()
52
b68b8615c512 update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents: 51
diff changeset
    70
source $LIB/update.operations
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    71
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    72
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    73
## Site settings, used as arguments to scripts
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    74
# MX record to generate in hosts --forward-zone
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    75
FORWARD_MX=mail
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    76
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    77
# IP network to generate reverse records for in --reverse-zone
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    78
REVERSE_ZONE=194.197.235
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
    79
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    80
# Origin domain to generate reverse records for in --reverse-zone
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    81
REVERSE_DOMAIN=paivola.fi
28
647f6de0d0ac update: implement -d for $ROOT
Tero Marttila <terom@paivola.fi>
parents: 27
diff changeset
    82
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    83
# Views used
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    84
VIEWS=(internal external)
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    85
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    86
# Base domain zone for domains
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    87
DOMAIN_BASE=paivola
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    88
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    89
# List of actual domains used; will be linked to $DOMAIN_BASE
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    90
DOMAINS=(paivola.fi paivola.net paivola.org paivola.info paivola.mobi xn--pivl-load8j.fi)
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    91
54
b474e2e6f54e update: docdoc
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
    92
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    93
## Operate!
54
b474e2e6f54e update: docdoc
Tero Marttila <terom@paivola.fi>
parents: 52
diff changeset
    94
# these functions are all defined in lib/update.operations
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    95
function run {
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    96
    ## Hosts
27
773c91a7547a update: deploy_zones
Tero Marttila <terom@paivola.fi>
parents: 26
diff changeset
    97
    # test
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
    98
    log "Testing hosts..."
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
    99
        #                   data                            args...
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   100
        check_hosts         $DATA/paivola.txt               --check-exempt ufc
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   101
27
773c91a7547a update: deploy_zones
Tero Marttila <terom@paivola.fi>
parents: 26
diff changeset
   102
    # update
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   103
    log "Generating host zones..."
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   104
        #                   hosts                           data                args...
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   105
        update_hosts        $ZONES/hosts/paivola:internal   $DATA/paivola.txt   --forward-zone --forward-txt --forward-mx $FORWARD_MX
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   106
        update_hosts        $ZONES/hosts/paivola:external   $DATA/paivola.txt   --forward-zone
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   107
        update_hosts        $ZONES/hosts/194.197.235        $DATA/paivola.txt   --reverse-zone $REVERSE_ZONE --reverse-domain $REVERSE_DOMAIN
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   108
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   109
        
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   110
        update_hosts        $ZONES/hosts/10                 $DATA/pvl.txt       --reverse-zone 10 --reverse-domain pvl -q
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   111
        update_hosts        $ZONES/hosts/192.168            $DATA/pvl.txt       --reverse-zone 192.168 --reverse-domain pvl -q
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   112
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   113
        # XXX: unsupported --forward-zone with pvl.txt
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   114
        # update_hosts    $ZONES/hosts/pvl                    $DATA/pvl.txt      --forward-zone
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   115
        copy_hosts          $ZONES/hosts/pvl                $DATA/pvl.txt
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   116
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   117
    ## Includes
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   118
    log "Copying zone includes..."
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   119
        #                   view            zone                    base
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   120
        copy_zone           includes        paivola:internal        paivola.zone.internal
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   121
        copy_zone           includes        paivola:external        paivola.zone.external
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   122
        copy_zone           includes        paivola.auto            paivola.zone.auto
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   123
        copy_zone           includes        paivola.services        paivola.zone.services
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   124
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   125
    ## Serials
42
ef5bcc4145de debug with func_caller; update_serial deps
Tero Marttila <terom@paivola.fi>
parents: 41
diff changeset
   126
    log "Updating serials..."
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   127
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   128
        #                   zone            deps...
45
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   129
        #   includes...
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   130
        update_serial       pvl             $ZONES/hosts/pvl            $DATA/pvl.zone
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   131
        update_serial       10              $ZONES/hosts/10             $DATA/10.zone
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   132
        update_serial       192.168         $ZONES/hosts/192.168        $DATA/192.168.zone
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   133
45
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   134
        update_serial       paivola         $ZONES/hosts/paivola:*      $DATA/paivola.zone          \
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   135
            $ZONES/includes/paivola:*       \
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   136
            $ZONES/includes/paivola.*
42
ef5bcc4145de debug with func_caller; update_serial deps
Tero Marttila <terom@paivola.fi>
parents: 41
diff changeset
   137
45
3d6bf3864d8a update: tidy up run update_serials
Tero Marttila <terom@paivola.fi>
parents: 44
diff changeset
   138
        update_serial       194.197.235     $ZONES/hosts/194.197.235    $DATA/194.197.235.zone          
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   139
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   140
    ## Zones
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   141
    log "Updating zones..."
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   142
        #                   view        zone            base
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   143
        update_zone         internal    pvl
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   144
        update_zone         internal    paivola
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   145
        update_zone         external    paivola
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   146
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   147
        update_zone         internal    10
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   148
        update_zone         internal    192.168
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   149
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   150
        update_zone         common      194.197.235
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   151
        link_zone           internal    194.197.235
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   152
        link_zone           external    194.197.235
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   153
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   154
    ## Test
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   155
    log "Testing zones..."
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   156
        #                   view        zone            origin
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   157
        check_zone          internal    paivola         paivola.fi
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   158
        check_zone          external    paivola         paivola.fi
36
3208cd6540dc update: restructure zones/, manage .pvl
Tero Marttila <terom@paivola.fi>
parents: 32
diff changeset
   159
38
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   160
        check_zone          internal    10              10.in-addr.arpa
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   161
        check_zone          internal    192.168         192.168.in-addr.arpa
39799fc994e9 update: unify [check/copy/update/link]_[hosts/zone/serial]
Tero Marttila <terom@paivola.fi>
parents: 37
diff changeset
   162
        check_zone          common      194.197.235     235.197.194.in-addr.arpa
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   163
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   164
    ## Domains...
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   165
    log "Linking domains..."
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   166
        for view in "${VIEWS[@]}"; do
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   167
            for zone in "${DOMAINS[@]}"; do
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   168
                # link
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   169
                link_zone       $view       $zone           $DOMAIN_BASE
30
1a8bc67b1eb7 update: link_zones for paivola.*.zone -> paivola.zone
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
   170
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   171
                # test
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   172
                check_zone      $view       $zone           $zone
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   173
            done
30
1a8bc67b1eb7 update: link_zones for paivola.*.zone -> paivola.zone
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
   174
        done
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   175
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   176
    ## Deploy
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   177
    log "Deploy zones..."
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   178
        deploy_zones
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   179
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   180
    ## Commit
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   181
    log "Commit data..."
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   182
        commit_data
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   183
}
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   184
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   185
## Main entry point
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   186
function main {
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   187
    # test tty
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   188
    [ -t 1 ] && IS_TTY=y
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   189
    
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   190
    parse_args "$@"
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   191
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   192
    ## test env
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   193
    [ -d $ROOT/$DATA ] || die "Missing data: $ROOT/$DATA"
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   194
    ensure_dir  $ZONES
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   195
    
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   196
    ## Output dirs
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   197
    for dir in "common" "hosts" "includes" "${VIEWS[@]}"; do
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   198
        ensure_dir $ZONES/$dir
30
1a8bc67b1eb7 update: link_zones for paivola.*.zone -> paivola.zone
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
   199
    done
1a8bc67b1eb7 update: link_zones for paivola.*.zone -> paivola.zone
Tero Marttila <terom@paivola.fi>
parents: 29
diff changeset
   200
44
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   201
    ## Go
8f49e2f51c0d update: cleanup, docs
Tero Marttila <terom@paivola.fi>
parents: 43
diff changeset
   202
    run
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   203
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   204
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   205
main "$@"