diff options
Diffstat (limited to 'tools/naptr-eduroam.sh')
-rwxr-xr-x[-rw-r--r--] | tools/naptr-eduroam.sh | 77 |
1 files changed, 39 insertions, 38 deletions
diff --git a/tools/naptr-eduroam.sh b/tools/naptr-eduroam.sh index 9bc6c45..be722c9 100644..100755 --- a/tools/naptr-eduroam.sh +++ b/tools/naptr-eduroam.sh @@ -1,15 +1,15 @@ -#! /bin/bash +#! /bin/sh # Example script! # This script looks up radsec srv records in DNS for the one # realm given as argument, and creates a server template based # on that. It currently ignores weight markers, but does sort # servers on priority marker, lowest number first. -# For host command this is coloumn 5, for dig it is coloumn 1. +# For host command this is column 5, for dig it is column 1. usage() { - echo "Usage: ${0} <realm>" - exit 1 + /bin/echo "Usage: ${0} <realm>" + exit 1 } test -n "${1}" || usage @@ -19,54 +19,55 @@ DIGCMD=$(command -v dig) HOSTCMD=$(command -v host) dig_it_srv() { - ${DIGCMD} +short srv $SRV_HOST | sort -k1 | - while read line ; do - set $line ; PORT=$3 ; HOST=$4 - echo -e "\thost ${HOST%.}:${PORT}" - done + ${DIGCMD} +short srv $SRV_HOST | sort -k1 | + while read line; do + set $line ; PORT=$3 ; HOST=$4 + /bin/echo -e "\thost ${HOST%.}:${PORT}" + done } dig_it_naptr() { - ${DIGCMD} +short naptr ${REALM} | grep x-eduroam:radius.tls | sort -k1 | - while read line ; do - set $line ; TYPE=$3 ; HOST=$6 - if [ "$TYPE" == "\"s\"" ]; then { - SRV_HOST=${HOST%.} - dig_it_srv; }; fi - done + ${DIGCMD} +short naptr ${REALM} | grep x-eduroam:radius.tls | sort -k1 | + while read line; do + set $line ; TYPE=$3 ; HOST=$6 + if [ "$TYPE" = "\"s\"" ]; then + SRV_HOST=${HOST%.} + dig_it_srv + fi + done } host_it_srv() { - ${HOSTCMD} -t srv $SRV_HOST | sort -k5 | - while read line ; do - set $line ; PORT=$7 ; HOST=$8 - echo -e "\thost ${HOST%.}:${PORT}" - done + ${HOSTCMD} -t srv $SRV_HOST | sort -k5 | + while read line; do + set $line ; PORT=$7 ; HOST=$8 + /bin/echo -e "\thost ${HOST%.}:${PORT}" + done } host_it_naptr() { - ${HOSTCMD} -t naptr ${REALM} | grep x-eduroam:radius.tls | sort -k5 | - while read line ; do - set $line ; TYPE=$7 ; HOST=${10} - if [ "$TYPE" == "\"s\"" ]; then { - SRV_HOST=${HOST%.} - host_it_srv; }; fi - - done + ${HOSTCMD} -t naptr ${REALM} | grep x-eduroam:radius.tls | sort -k5 | + while read line; do + set $line ; TYPE=$7 ; HOST=${10} + if [ "$TYPE" = "\"s\"" ]; then + SRV_HOST=${HOST%.} + host_it_srv + fi + done } -if test -x "${DIGCMD}" ; then - SERVERS=$(dig_it_naptr) -elif test -x "${HOSTCMD}" ; then - SERVERS=$(host_it_naptr) +if [ -x "${DIGCMD}" ]; then + SERVERS=$(dig_it_naptr) +elif [ -x "${HOSTCMD}" ]; then + SERVERS=$(host_it_naptr) else - echo "${0} requires either \"dig\" or \"host\" command." - exit 1 + /bin/echo "${0} requires either \"dig\" or \"host\" command." + exit 1 fi -if test -n "${SERVERS}" ; then - echo -e "server dynamic_radsec.${REALM} {\n${SERVERS}\n\ttype TLS\n}" - exit 0 +if [ -n "${SERVERS}" ]; then + /bin/echo -e "server dynamic_radsec.${REALM} {\n${SERVERS}\n\ttype TLS\n}" + exit 0 fi exit 0 |