dahdi-tools/dahdi_map

40 lines
1021 B
Bash
Executable File

#! /bin/sh
#
# Show a map of dahdi devices with the following fields:
# - spanno (or '-' if not assigned yet)
# - (vendor assigned) name
# - local spanno
# - hardware_id (or empty if none)
# - location (prefixed by '@')
devbase="/sys/bus/dahdi_devices/devices"
[ -d "$devbase" ] || {
echo >&2 "$0: Missing '$devbase' (Old driver?)"
exit 1
}
fmt="%-4s %-17s %-3s %-12s %s\n"
printf "$fmt" 'SPAN' 'NAME' '#' 'HARDWARE_ID' 'LOCATION'
DEVICES=`echo $devbase/*`
for device in $DEVICES
do
hw_id=`cat "$device/hardware_id"`
location=`cd "$device" && pwd -P | sed 's,/sys/devices/,,'`
for local_spanno in `cut -d: -f1 "$device/spantype"`
do
span=`grep 2>/dev/null -Hw "$local_spanno" "$device/span-"*"/local_spanno" | \
sed -e 's,/local_spanno:.*,,' -e 's,.*/,,'`
if [ "$span" != '' ]; then
spanno=`echo $span | sed 's/^.*-//'`
name=`cat 2>/dev/null "$device/$span/name"`
else
spanno='-'
fi
printf "$fmt" "$spanno" "$name" "($local_spanno)" "[$hw_id]" "@$location"
done | sort -n
done