diff options
Diffstat (limited to 'bin/itzks-hosts')
-rwxr-xr-x | bin/itzks-hosts | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/bin/itzks-hosts b/bin/itzks-hosts index 7d7f04f..ee1ade5 100755 --- a/bin/itzks-hosts +++ b/bin/itzks-hosts @@ -2,23 +2,30 @@ set -e -ldapsearch -xLLL "(&(cn=*)(|(objectClass=ipHost)(objectClass=goServer)))" \ - cn ipHostNumber macAddress description 2>/dev/null | perl -p0e 's/\n //g' | \ -while read KEY VALUE ; do - case "$KEY" in - dn:) - HOSTNAME= ; IP= ; MAC= ; DESC= ; DN=${VALUE} - OU=$(echo $DN | sed -r -e 's/cn=[^,]+,ou=[^,]+,ou=[^,]+,ou=([^,]+),.*/\1/' | sed -r -e 's/cn=[^,]+,ou=[^,]+,ou=[^,]+,dc=.*/Servers/g') - ;; - cn:) HOSTNAME="${VALUE}";; - ipHostNumber:) IP="${VALUE}";; - macAddress:) MAC="${VALUE}";; - description:) DESC="${VALUE}";; - "") - if [ -n "$DESC" ]; then DESC="\"${DESC}\""; fi - echo "${OU},${HOSTNAME},${IP},${MAC},${DESC}" - ;; - esac -done +if [ -x "/usr/share/debian-edu-config/list-gosa-systems" ]; then + /usr/share/debian-edu-config/list-gosa-systems ${@} +else + + # FIXME: drop this part for the bookworm release cycle... + + ldapsearch -xLLL "(&(cn=*)(|(objectClass=ipHost)(objectClass=goServer)))" \ + cn ipHostNumber macAddress description 2>/dev/null | perl -p0e 's/\n //g' | \ + while read KEY VALUE ; do + case "$KEY" in + dn:) + HOSTNAME= ; IP= ; MAC= ; DESC= ; DN=${VALUE} + OU=$(echo $DN | sed -r -e 's/cn=[^,]+,ou=[^,]+,ou=[^,]+,ou=([^,]+),.*/\1/' | sed -r -e 's/cn=[^,]+,ou=[^,]+,ou=[^,]+,dc=.*/Servers/g') + ;; + cn:) HOSTNAME="${VALUE}";; + ipHostNumber:) IP="${VALUE}";; + macAddress:) MAC="${VALUE}";; + description:) DESC="${VALUE}";; + "") + if [ -n "$DESC" ]; then DESC="\"${DESC}\""; fi + echo "${OU},${HOSTNAME},${IP},${MAC},${DESC}" + ;; + esac + done +fi exit 0 |