summaryrefslogtreecommitdiffstats
path: root/contrib/scripts/zone-edit.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/scripts/zone-edit.sh.in')
-rw-r--r--contrib/scripts/zone-edit.sh.in208
1 files changed, 100 insertions, 108 deletions
diff --git a/contrib/scripts/zone-edit.sh.in b/contrib/scripts/zone-edit.sh.in
index 2596ef8..92f8052 100644
--- a/contrib/scripts/zone-edit.sh.in
+++ b/contrib/scripts/zone-edit.sh.in
@@ -24,129 +24,121 @@ checkzone=${bindir}/named-checkzone
nsupdate=${bindir}/nsupdate
case $# in
-0) echo "Usage: zone-edit <zone> [dig options] [ -- nsupdate options ]"; exit 0 ;;
+ 0)
+ echo "Usage: zone-edit <zone> [dig options] [ -- nsupdate options ]"
+ exit 0
+ ;;
esac
# What kind of echo are we using?
-try=`echo -n ""`
-if test "X$try" = "X-n "
-then
- echo_arg=""
- bsc="\\c"
+try=$(echo -n "")
+if test "X$try" = "X-n "; then
+ echo_arg=""
+ bsc="\\c"
else
- echo_arg="-n"
- bsc=""
+ echo_arg="-n"
+ bsc=""
fi
zone="${1}"
shift
digopts=
-while test $# -ne 0
-do
- case "${1}" in
+while test $# -ne 0; do
+ case "${1}" in
--)
- shift
- break
- ;;
+ shift
+ break
+ ;;
*)
- digopts="$digopts $1"
- shift
- ;;
- esac
+ digopts="$digopts $1"
+ shift
+ ;;
+ esac
done
-${dig} axfr "$zone" $digopts |
-awk '$4 == "RRSIG" || $4 == "NSEC" || $4 == "NSEC3" || $4 == "NSEC3PARAM" { next; } { print; }' > ${dir}/old
+${dig} axfr "$zone" $digopts \
+ | awk '$4 == "RRSIG" || $4 == "NSEC" || $4 == "NSEC3" || $4 == "NSEC3PARAM" { next; } { print; }' >${dir}/old
-if test -s ${dir}/old
-then
- ${checkzone} -q -D "$zone" ${dir}/old > ${dir}/ooo
+if test -s ${dir}/old; then
+ ${checkzone} -q -D "$zone" ${dir}/old >${dir}/ooo
fi
-if test -s ${dir}/ooo
-then
- cp ${dir}/ooo ${dir}/new
- while :
- do
- if ${VISUAL:-${EDITOR:-/bin/ed}} ${dir}/new
- then
- if ${checkzone} -q -D "$zone" ${dir}/new > ${dir}/nnn
- then
- sort ${dir}/ooo > ${dir}/s1
- sort ${dir}/nnn > ${dir}/s2
- comm -23 ${dir}/s1 ${dir}/s2 |
- sed 's/^/update delete /' > ${dir}/ccc
- comm -13 ${dir}/s1 ${dir}/s2 |
- sed 's/^/update add /' >> ${dir}/ccc
- if test -s ${dir}/ccc
- then
- cat ${dir}/ccc | more
- while :
- do
- echo ${echo_arg} "Update (u), Abort (a), Redo (r), Modify (m), Display (d) : $bsc"
- read ans
- case "$ans" in
- u)
- (
- echo zone "$zone"
- cat ${dir}/ccc
- echo send
- ) | ${nsupdate} "$@"
- break 2
- ;;
- a)
- break 2
- ;;
- d)
- cat ${dir}/ccc | more
- ;;
- r)
- cp ${dir}/ooo ${dir}/new
- break
- ;;
- m)
- break
- ;;
- esac
- done
- else
- while :
- do
- echo ${echo_arg} "Abort (a), Redo (r), Modify (m) : $bsc"
- read ans
- case "$ans" in
- a)
- break 2
- ;;
- r)
- cp ${dir}/ooo ${dir}/new
- break
- ;;
- m)
- break
- ;;
- esac
- done
- fi
- else
- while :
- do
- echo ${echo_arg} "Abort (a), Redo (r), Modify (m) : $bsc"
- read ans
- case "$ans" in
- a)
- break 2
- ;;
- r)
- cp ${dir}/ooo ${dir}/new
- break
- ;;
- m)
- break
- ;;
- esac
- done
- fi
+if test -s ${dir}/ooo; then
+ cp ${dir}/ooo ${dir}/new
+ while :; do
+ if ${VISUAL:-${EDITOR:-/bin/ed}} ${dir}/new; then
+ if ${checkzone} -q -D "$zone" ${dir}/new >${dir}/nnn; then
+ sort ${dir}/ooo >${dir}/s1
+ sort ${dir}/nnn >${dir}/s2
+ comm -23 ${dir}/s1 ${dir}/s2 \
+ | sed 's/^/update delete /' >${dir}/ccc
+ comm -13 ${dir}/s1 ${dir}/s2 \
+ | sed 's/^/update add /' >>${dir}/ccc
+ if test -s ${dir}/ccc; then
+ cat ${dir}/ccc | more
+ while :; do
+ echo ${echo_arg} "Update (u), Abort (a), Redo (r), Modify (m), Display (d) : $bsc"
+ read ans
+ case "$ans" in
+ u)
+ (
+ echo zone "$zone"
+ cat ${dir}/ccc
+ echo send
+ ) | ${nsupdate} "$@"
+ break 2
+ ;;
+ a)
+ break 2
+ ;;
+ d)
+ cat ${dir}/ccc | more
+ ;;
+ r)
+ cp ${dir}/ooo ${dir}/new
+ break
+ ;;
+ m)
+ break
+ ;;
+ esac
+ done
+ else
+ while :; do
+ echo ${echo_arg} "Abort (a), Redo (r), Modify (m) : $bsc"
+ read ans
+ case "$ans" in
+ a)
+ break 2
+ ;;
+ r)
+ cp ${dir}/ooo ${dir}/new
+ break
+ ;;
+ m)
+ break
+ ;;
+ esac
+ done
fi
- done
+ else
+ while :; do
+ echo ${echo_arg} "Abort (a), Redo (r), Modify (m) : $bsc"
+ read ans
+ case "$ans" in
+ a)
+ break 2
+ ;;
+ r)
+ cp ${dir}/ooo ${dir}/new
+ break
+ ;;
+ m)
+ break
+ ;;
+ esac
+ done
+ fi
+ fi
+ done
fi