40 lines
1021 B
Plaintext
40 lines
1021 B
Plaintext
|
#! /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
|