30 lines
782 B
Bash
Executable file
30 lines
782 B
Bash
Executable file
#!/bin/bash
|
|
|
|
NETWORKMANAGER_NETCONFIG="/var/run/netconfig/NetworkManager.netconfig"
|
|
|
|
dns-update() {
|
|
tmpfile=$(mktemp)
|
|
sed --regexp-extended "s/(DNSSERVERS=)'(.*?)'/\1'$@ \2'/g" "${NETWORKMANAGER_NETCONFIG}" > "${tmpfile}"
|
|
netconfig modify -s NetworkManager -I "${tmpfile}"
|
|
rm -f "${tmpfile}"
|
|
}
|
|
|
|
dns-restore() {
|
|
tmpfile=$(mktemp)
|
|
sed --regexp-extended "s/$@ //g" "${NETWORKMANAGER_NETCONFIG}" > "${tmpfile}"
|
|
netconfig modify -s NetworkManager -I ${tmpfile}
|
|
rm -f ${tmpfile}
|
|
}
|
|
|
|
dns() {
|
|
local cmdname=$1; shift
|
|
"dns-$cmdname" "$@"
|
|
}
|
|
|
|
if declare -f "$1" >/dev/null 2>&1; then
|
|
# invoke that function, passing arguments through
|
|
"$@" # same as "$1" "$2" "$3" ... for full argument list
|
|
else
|
|
echo "Function $1 not recognized" >&2
|
|
exit 1
|
|
fi
|