author | Tero Marttila <terom@paivola.fi> |
Tue, 20 Mar 2012 14:40:14 +0200 | |
changeset 582 | b0c761c4d5f8 |
parent 578 | a2d87cfd77e4 |
child 583 | b65ce9123039 |
permissions | -rw-r--r-- |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
1 |
# vim: set ft=sh : |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
2 |
# |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
# Command-line option handling |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
4 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
5 |
# use color output? |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
6 |
IS_TTY= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
7 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
8 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
9 |
## Options |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
10 |
LOG_ERROR=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
11 |
LOG_WARN=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
12 |
LOG=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
13 |
LOG_FORCE=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
14 |
LOG_UPDATE=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
15 |
LOG_NOOP=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
16 |
LOG_SKIP= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
17 |
LOG_DEBUG= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
18 |
LOG_CMD= |
578
a2d87cfd77e4
update: LOG_DIFF to fix -q
Tero Marttila <terom@paivola.fi>
parents:
575
diff
changeset
|
19 |
LOG_DIFF=y |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
20 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
21 |
UPDATE_FORCE= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
22 |
UPDATE_NOOP= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
23 |
UPDATE_DIFF= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
24 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
25 |
SERIAL_NOOP= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
26 |
SERIAL_FORCE= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
27 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
28 |
COMMIT_SKIP= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
29 |
COMMIT_FORCE= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
30 |
COMMIT_MSG=' ' |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
31 |
|
582
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
32 |
DEPLOY_NOOP= |
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
33 |
DEPLOY_FORCE= |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
34 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
35 |
## Output command-line argument help. |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
36 |
function help_args { |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
37 |
local prog=$1 |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
38 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
39 |
cat <<END |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
40 |
Usage: $prog [options] |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
41 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
42 |
General: |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
43 |
-h display this help text |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
44 |
-d DIR datadir |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
45 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
46 |
Logging: |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
47 |
-q quiet |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
48 |
-v verbose |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
49 |
-D debug |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
50 |
-V debug commands |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
51 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
52 |
Updates: |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
53 |
-p show changes |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
54 |
-F force-updates without checking src mtime |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
55 |
-S do not update serial |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
56 |
-s update serials |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
57 |
-n no-op/mock-update; don't actually change/deploy anything; implies -SpC |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
58 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
59 |
Commit: |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
60 |
-C do not commit changes |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
61 |
-c commit changes |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
62 |
-m MSG commit message |
582
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
63 |
|
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
64 |
Deploy: |
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
65 |
-R do not reload zones |
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
66 |
-r force reload zones |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
67 |
END |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
68 |
} |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
69 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
70 |
## Parse any command-line arguments, setting the global options vars. |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
71 |
function parse_args { |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
72 |
OPTIND=1 |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
73 |
|
582
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
74 |
while getopts 'hd:qvDVpFSsnCcm:Rr' opt "$@"; do |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
75 |
case $opt in |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
76 |
h) |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
77 |
help_args $0 |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
78 |
exit 0 |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
79 |
;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
80 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
81 |
d) ROOT="$OPTARG" ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
82 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
83 |
q) |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
84 |
LOG= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
85 |
LOG_WARN= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
86 |
LOG_UPDATE= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
87 |
LOG_FORCE= |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
88 |
LOG_NOOP= |
578
a2d87cfd77e4
update: LOG_DIFF to fix -q
Tero Marttila <terom@paivola.fi>
parents:
575
diff
changeset
|
89 |
LOG_DIFF= |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
90 |
;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
91 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
92 |
v) LOG_SKIP=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
93 |
D) |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
94 |
LOG_DEBUG=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
95 |
LOG_INFO=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
96 |
;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
97 |
V) LOG_CMD=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
98 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
99 |
p) UPDATE_DIFF=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
100 |
F) UPDATE_FORCE=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
101 |
S) SERIAL_NOOP=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
102 |
s) SERIAL_FORCE=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
103 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
104 |
n) |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
105 |
UPDATE_NOOP=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
106 |
# implies -Sp |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
107 |
UPDATE_DIFF=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
108 |
SERIAL_NOUPDATE=y |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
109 |
COMMIT_SKIP=y |
582
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
110 |
DEPLOY_NOOP=y |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
111 |
;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
112 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
113 |
C) COMMIT_SKIP=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
114 |
c) COMMIT_FORCE=y ;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
115 |
m) COMMIT_MSG="$OPTARG" ;; |
582
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
116 |
|
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
117 |
R) DEPLOY_NOOP=y ;; |
b0c761c4d5f8
update: DEPLOY_FORCE/SKIP (-r/-R), make rndc key error an actual error
Tero Marttila <terom@paivola.fi>
parents:
578
diff
changeset
|
118 |
r) DEPLOY_FORCE=y ;; |
575
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
119 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
120 |
?) |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
121 |
die |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
122 |
;; |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
123 |
esac |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
124 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
125 |
done |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
126 |
} |
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
127 |
|
b68b8615c512
update: split out code into lib/update.foo
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
128 |