bin/update
author Tero Marttila <terom@paivola.fi>
Sat, 17 Mar 2012 21:43:03 +0200
changeset 22 5d2a8510a28f
parent 21 81cd07bc5f76
child 26 d2fdfe98b7b9
permissions -rwxr-xr-x
update: fix COMMIT_MSG bug
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
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
ROOT=$(pwd)
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
     8
BIN=bin
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
PROCESS_ZONE=$BIN/process-zone
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
EXPAND_ZONE=$BIN/expand-zone
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    11
UPDATE_SERIAL=$BIN/update-serial
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    13
DATA=settings
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    14
ZONES=zones
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    15
SERIALS=$DATA
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
PROCESS_ARGS='--input-charset latin-1'
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
FORWARD_MX=mail
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
REVERSE_ZONE=194.197.235
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
REVERSE_DOMAIN=paivola.fi
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    23
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
    24
NAMED_CHECKZONE=/usr/sbin/named-checkzone
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    25
HG=hg
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
    26
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    27
## options
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    28
IS_TTY=
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    29
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    30
LOG=y
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    31
LOG_INFO=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    32
LOG_DEBUG=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    33
LOG_CMD=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    34
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    35
UPDATE_FORCE=
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    36
UPDATE_NOOP=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    37
UPDATE_DIFF=
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    38
SERIAL_NOUPDATE=
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    39
COMMIT_SKIP=
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    40
COMMIT_FORCE=
22
5d2a8510a28f update: fix COMMIT_MSG bug
Tero Marttila <terom@paivola.fi>
parents: 21
diff changeset
    41
COMMIT_MSG=' '
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    42
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    43
function help_args {
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    44
    local prog=$1
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    45
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    46
    cat <<END
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    47
Usage: $prog [options]
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    48
15
e517ad3376f7 update: fixup help
Tero Marttila <terom@paivola.fi>
parents: 14
diff changeset
    49
General:
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    50
    -h      display this help text
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    51
15
e517ad3376f7 update: fixup help
Tero Marttila <terom@paivola.fi>
parents: 14
diff changeset
    52
Logging:    
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    53
    -q      quiet
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    54
    -v      verbose
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    55
    -D      debug
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    56
    -V      debug commands
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    57
    
15
e517ad3376f7 update: fixup help
Tero Marttila <terom@paivola.fi>
parents: 14
diff changeset
    58
Updates:
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
    59
    -p      show changes
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    60
    -F      force-updates without checking src mtime
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    61
    -S      do not update serial
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    62
    -n      no-op/mock-update; don't actually change anything; implies -SpC
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    63
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    64
Commit    
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    65
    -C      do not commit changes
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    66
    -c      commit changes
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    67
    -m      commit message
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    68
END
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    69
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    70
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    71
function parse_args {
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    72
    OPTIND=1
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    73
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    74
    while getopts 'hqvDVpFSnCcm:' opt "$@"; do
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    75
        case $opt in
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    76
            h)  
15
e517ad3376f7 update: fixup help
Tero Marttila <terom@paivola.fi>
parents: 14
diff changeset
    77
                help_args $0
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    78
                exit 0
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    79
            ;;
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    80
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    81
            q)  LOG= ;;
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    82
            v)  LOG_INFO=y ;;
16
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
    83
            D)  
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
    84
                LOG_DEBUG=y
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
    85
                LOG_INFO=y
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
    86
                ;;
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    87
            V)  LOG_CMD=y ;;
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    88
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
    89
            p)  UPDATE_DIFF=y ;;
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    90
            F)  UPDATE_FORCE=y ;;
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
    91
            S)  SERIAL_NOUPDATE=y ;;
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    92
 
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    93
            n)  
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    94
                UPDATE_NOOP=y 
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
    95
                # implies -Sp
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
    96
                UPDATE_DIFF=y
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    97
                SERIAL_NOUPDATE=y
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
    98
                COMMIT_SKIP=y
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
    99
                ;;
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   100
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   101
            C)  COMMIT_SKIP=y ;;
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   102
            c)  COMMIT_FORCE=y ;;
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   103
            m)  COMMIT_MSG="$OPTARG" ;;
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   104
           
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   105
            ?)  
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   106
                die 
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   107
            ;;
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   108
        esac
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   109
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   110
    done
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   111
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   112
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   113
## lib
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   114
function log_msg {
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   115
    echo "$*" >&2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   116
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   117
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   118
function log_color {
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   119
    local code=$1; shift
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   120
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   121
    if [ $IS_TTY ]; then
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   122
        echo $'\e[0;'${code}'m'"$*"$'\e[00m' >&2
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   123
    else
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   124
        echo "$*" >&2
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   125
    fi
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   126
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   127
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   128
function log_error {
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   129
    log_color 31 "$*"
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   130
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   131
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   132
function log {
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   133
    [ $LOG ] && log_msg "$*" || true
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   134
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   135
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   136
function log_info {
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   137
    [ $LOG_INFO ] && log_color 36 "  $*" || true
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   138
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   139
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   140
function log_debug {
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   141
    [ $LOG_DEBUG ] && log_color 32 "    $*" || true
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   142
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   143
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   144
function log_cmd {
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   145
    [ $LOG_CMD ] && log_color 35 "        \$ $*" || true
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   146
}
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   147
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   148
# XXX: broken
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   149
function log_stack {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   150
    local level=1
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   151
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   152
    while info=$(caller $level); do
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   153
        echo $info | read line sub file
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   154
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   155
        log_msg "$file:$lineno $sub()"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   156
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   157
        level=$(($level + 1))
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   158
    done
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   159
}
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   160
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   161
function fail {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   162
    func=$(caller 1 | cut -d ' ' -f 2)
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   163
    
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   164
    log_error "$func: $*"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   165
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   166
    exit 2
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   167
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   168
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   169
function die {
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   170
    log_error "$*"
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   171
    exit 1
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   172
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   173
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   174
function cmd {
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   175
    log_cmd "$@"
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   176
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   177
    "$@" || die "Failed"
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   178
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   179
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   180
function run_cmd {
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   181
    local msg=$1; shift
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   182
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   183
    log_info "$msg... "
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   184
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   185
    cmd "$@"
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   186
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   187
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   188
function indent () {
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   189
    local indent=$1; shift
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   190
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   191
    log_cmd "$@"
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   192
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   193
    "$@" | (
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   194
        while read line; do
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   195
            echo "$indent$line"
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   196
        done
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   197
    ) || return $?
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   198
}
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   199
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   200
function abspath () {
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   201
    echo "$ROOT/$1"
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   202
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   203
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   204
## test
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   205
[ -d $DATA ] || die "Missing settings: $DATA"
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   206
[ -d $SERIALS ] || die "Missing serials: $SERIALS"
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   207
[ -d $ZONES ] || die "Missing zones: $ZONES"
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   208
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   209
## functions
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   210
function check_update {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   211
    # target
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   212
    local dst=$1; shift
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   213
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
   214
    log_debug "check_update: $dst"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   215
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   216
    # need update?
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   217
    local update=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   218
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   219
    if [ ! -e $dst ] || [ $UPDATE_FORCE ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   220
        log_debug "  update forced"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   221
        update=y
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   222
    fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   223
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   224
    # check deps
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   225
    for dep in "$@"; do
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   226
        # don't bother checking if already figured out
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   227
        [ $update ] && continue
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   228
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   229
        # check
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   230
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   231
        if [ $dst -ot $dep ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   232
            log_debug "  changed: $dep"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   233
            update=y
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   234
        fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   235
    done
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   236
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   237
    [ ! $update ] && log_debug "  up-to-date"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   238
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   239
    # return
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   240
    [ $update ]
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   241
}
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   242
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   243
function do_update {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   244
    local dst=$1; shift
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   245
    local tmp=$dst.new
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   246
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
   247
    log_debug "update: $dst"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   248
    cmd "$@" > $tmp
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   249
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   250
    # compare
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   251
    if [ -e $dst ] && [ $UPDATE_DIFF ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   252
        log_debug "  changes:"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   253
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   254
        # terse
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   255
        indent "        " diff --unified=1 $dst $tmp
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   256
    fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   257
    
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   258
    if [ $UPDATE_NOOP ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   259
        # cleanup
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
   260
        log_debug "  no-op"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   261
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   262
        cmd rm $tmp
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   263
    else
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   264
        # commit
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
   265
        log_debug "  update"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   266
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   267
        cmd mv $tmp $dst
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   268
    fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   269
}
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   270
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   271
function update {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   272
    local dst=$1; shift;
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   273
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   274
    local sep=
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   275
    local dep=()
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   276
    local cmd=()
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   277
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   278
    for arg in "$@"; do
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   279
        if [ $arg == '--' ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   280
            sep=y
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   281
        fi
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   282
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   283
        if [ $sep ]; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   284
            cmd=("${cmd[@]:-}" "$arg")
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   285
        else
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   286
            dep=("${dep[@]:-}" "$arg")
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   287
        fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   288
    done
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   289
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   290
    [ ! $sep ] && fail "Invalid args given: $@"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   291
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   292
    check_update $dst "${dep[@]}" && do_update $dst "${cmd[@]}" || true
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   293
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   294
16
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   295
## actions
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   296
function update_zone_serial {
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   297
    local name=$1; shift
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   298
    local file=$SERIALS/$name.serial
14
b883ef452cd8 fix handling of initial serial
Tero Marttila <terom@paivola.fi>
parents: 13
diff changeset
   299
    
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   300
    local old=$(test -e $file && cat $file || echo '')
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   301
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   302
    log_info "Updating $file..."
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   303
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   304
    cmd $UPDATE_SERIAL $* $file
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   305
    
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   306
    local new=$(cat $file)
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   307
        
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   308
    log_debug "  $old -> $new"
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   309
}
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   310
16
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   311
function update_zone_part {
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   312
    local zone=$1
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   313
    local part=$2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   314
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   315
    local name=$zone.zone.$part
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   316
    local src=$DATA/$name
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   317
    local dst=$ZONES/$name
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   318
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   319
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   320
    if check_update $dst $src; then
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   321
        log_info "Copying zones/$name..."
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   322
9
beb4bef2498a update: bugfix, -C
Tero Marttila <terom@paivola.fi>
parents: 8
diff changeset
   323
        do_update $dst cat $src
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   324
    else
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   325
        log_info "Copying zones/$name: not changed"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   326
    fi
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   327
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   328
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   329
function update_zone {
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   330
    local zone=$1
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   331
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   332
    local name=$zone.zone
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   333
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   334
    local out=$ZONES/$name
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   335
    local in=$DATA/$zone.zone
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   336
    local serial=$SERIALS/$zone.serial
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   337
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   338
    if check_update $out $in $serial; then
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   339
        log_info "Generating $out..." 
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   340
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   341
        do_update $out \
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   342
            $EXPAND_ZONE $DATA/$zone.zone   \
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   343
                --serial $SERIALS/$zone.serial  \
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   344
                --expand zones=$(abspath $ZONES)
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   345
    else
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   346
        log_info "Generating $out: not changed" 
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   347
    fi
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   348
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   349
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   350
function update_zone_view {
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   351
    local zone=$1
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   352
    local view=$2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   353
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   354
    local name=$view/$zone.zone
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   355
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   356
    local out=$ZONES/$name
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   357
    local in=$DATA/$zone.zone
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   358
    local serial=$SERIALS/$zone.serial
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   359
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   360
    if check_update $out $in $serial; then
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   361
        log_info "Generating $out..."
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   362
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   363
        do_update $out \
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   364
            $EXPAND_ZONE $DATA/$zone.zone   \
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   365
                --serial $SERIALS/$zone.serial  \
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   366
                --expand zones=$(abspath $ZONES)    \
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   367
                --expand view=$view
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   368
    else
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   369
        log_info "Generating $out: not changed"
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   370
    fi
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   371
}
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   372
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   373
function update_hosts {
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   374
    local dst=$1; shift
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   375
    local src=$1; shift
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   376
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   377
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   378
    if check_update $dst $src; then
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   379
        log_info "Generating $dst..."
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   380
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   381
        do_update $dst $PROCESS_ZONE $PROCESS_ARGS $src "$@"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   382
    else
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   383
        log_info "Generating $dst: not changed"
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   384
    fi
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   385
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   386
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   387
function check_hosts {
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   388
    local hosts=$1; shift 1
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   389
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   390
    local cmd=($PROCESS_ZONE $PROCESS_ARGS $hosts --check-hosts "$@")
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   391
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   392
    if "${cmd[@]}" -q; then
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   393
        log_info "Check $hosts: OK"
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   394
    else
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   395
        log_error "  Check $hosts: Failed"
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   396
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   397
        indent "    " "${cmd[@]}"
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   398
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   399
        exit 1
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   400
    fi
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   401
}
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   402
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   403
function check_zone {
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   404
    local name=$1
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   405
    local file=$2
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   406
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   407
    local cmd=($NAMED_CHECKZONE $name $file)
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   408
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   409
    # test
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   410
    # XXX: checkzone is very specific about the order of arguments, -q must be first
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   411
    if $NAMED_CHECKZONE -q $name $file; then
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   412
        log_info "Check $file($name): OK"
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   413
    else
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   414
        log_error "  Check $file($name): Failed:"
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   415
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   416
        indent "    " "${cmd[@]}"
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   417
        
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   418
        exit 1
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   419
    fi
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   420
}
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   421
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   422
# commit data changes
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   423
function hg_modified {
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   424
    local repo=$1
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   425
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   426
    $HG -R $repo id | grep -q '+'
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   427
}
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   428
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   429
function hg_user {
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   430
    if [ ${SUDO_USER:-} ]; then
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   431
        echo '-u' "$SUDO_USER"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   432
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   433
    elif [ $HOME ] && [ -e $HOME/.hgrc ]; then
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   434
        log_debug "using .hgrc user"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   435
        echo ''
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   436
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   437
    else
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   438
        echo '-u' "$USER"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   439
    fi
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   440
}
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   441
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   442
function hg_diff {
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   443
    local repo=$1
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   444
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   445
    $HG -R $repo diff
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   446
}
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   447
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   448
function hg_commit {
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   449
    local repo=$1
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   450
    local msg=$2
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   451
    local user_opt=$(hg_user)
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   452
    
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   453
    log_debug "commit: $user_opt: $msg"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   454
    cmd $HG -R $repo commit $user_opt -m "$msg"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   455
}
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   456
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   457
function commit_data {
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   458
    local data=$DATA
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   459
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   460
    if hg_modified $data; then
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   461
        log_info "Commit changes in $data:"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   462
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   463
        indent "    " hg_diff $data
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   464
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   465
        hg_commit $data "$COMMIT_MSG"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   466
    else
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   467
        log_info "Commit changes in $data: no changes"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   468
    fi
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   469
}
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   470
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   471
function main {
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   472
    # test tty
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   473
    [ -t 1 ] && IS_TTY=y
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   474
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   475
    parse_args "$@"
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   476
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   477
    log "Testing hosts..."
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   478
        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
   479
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   480
    log "Generating host zones..."
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   481
        update_hosts    $ZONES/external/paivola.zone.hosts  $DATA/paivola.txt --forward-zone
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   482
        update_hosts    $ZONES/internal/paivola.zone.hosts  $DATA/paivola.txt --forward-zone --forward-txt --forward-mx $FORWARD_MX
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   483
        update_hosts    $ZONES/paivola-reverse.zone.hosts   $DATA/paivola.txt --reverse-zone $REVERSE_ZONE --reverse-domain $REVERSE_DOMAIN
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   484
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   485
    log "Copying zone parts..."
16
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   486
        update_zone_part    paivola         auto
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   487
        update_zone_part    paivola         services
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   488
        update_zone_part    paivola         internal
6516dc848a47 update: tweak functions
Tero Marttila <terom@paivola.fi>
parents: 15
diff changeset
   489
        update_zone_part    paivola         external
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   490
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   491
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   492
    if [ $SERIAL_NOUPDATE ]; then
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   493
        log "Updating serials: skipped"
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   494
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   495
    else
18
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   496
        log "Updating serials..."
826103fe3c8c update: abspath; fixup serials log; indent log_cmd
Tero Marttila <terom@paivola.fi>
parents: 17
diff changeset
   497
17
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   498
        update_zone_serial  paivola
6cb141e5de6b update: fixup info
Tero Marttila <terom@paivola.fi>
parents: 16
diff changeset
   499
        update_zone_serial  paivola-reverse
13
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   500
    fi
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   501
7d02a07e0354 update: check_hosts
Tero Marttila <terom@paivola.fi>
parents: 10
diff changeset
   502
8
dab145ee3f81 update: mad bash wizardry
Tero Marttila <terom@paivola.fi>
parents: 7
diff changeset
   503
    log "Updating zones headers..."
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   504
        update_zone         paivola-reverse
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   505
        update_zone_view    paivola             internal
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   506
        update_zone_view    paivola             external
10
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   507
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   508
    log "Testing zones..."
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   509
        check_zone          paivola.fi                  $ZONES/external/paivola.zone
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   510
        check_zone          paivola.fi                  $ZONES/external/paivola.zone
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   511
        check_zone          235.197.194.in-addr.arpa    $ZONES/paivola-reverse.zone
26e789db3f72 update: named-checkzone
Tero Marttila <terom@paivola.fi>
parents: 9
diff changeset
   512
21
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   513
    # XXX: deploy
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   514
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   515
    if [ $COMMIT_SKIP ] && [ ! $COMMIT_FORCE ]; then
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   516
        log "Commit data: skipped"
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   517
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   518
    else
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   519
        log "Commit data..."
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   520
            commit_data
81cd07bc5f76 update: commit
Tero Marttila <terom@paivola.fi>
parents: 19
diff changeset
   521
    fi
2
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   522
}
aeb106b9487c update: update zonefiles
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   523
7
f4457348faa0 update: function update { ... }, color logging, update_serial
Tero Marttila <terom@paivola.fi>
parents: 2
diff changeset
   524
main "$@"