1
0
Fork 0
bashrc.d/ez.sh

34 lines
750 B
Bash
Raw Normal View History

2024-06-01 17:31:32 +00:00
#!/bin/bash
ez() {
zone="$1"
file="/etc/bind/dyn/$zone.zone"
if [ -z "$zone" ]; then
echo "Usage: edit_zone zone" 2>&1
return 1
elif [ ! -e "$file" ]; then
echo "zone $zone doesnt exist!" 2>&1
return 1
fi
dynamic=0
if rndc zonestatus "$zone" | grep -q "dynamic: yes"; then
dynamic=1
rndc sync -clean "$zone" || return $?
rndc freeze "$zone" || return $?
echo "zone $zone frozen" 2>&1
fi
sudoedit "$file"
if [ $dynamic = 1 ]; then
rndc thaw "$zone" || return $?
fi
}
_ez() {
if [[ "$COMP_CWORD" -eq 1 ]]; then
COMPREPLY=($(cd "/etc/bind/dyn/" && compgen -f -X '!*.zone' "${COMP_WORDS[1]}"))
fi
}
complete -F _ez ez