2015-10-30 12:34:48 +00:00
|
|
|
#! /bin/bash
|
|
|
|
# vim: set tabstop=4 shiftwidth=4 expandtab filetype=sh:
|
2015-10-30 11:22:38 +00:00
|
|
|
|
|
|
|
ttyUSB=
|
|
|
|
|
|
|
|
pkill -f "sleep 86399"
|
|
|
|
|
|
|
|
if [[ $(grep -e '-scanttyUSB' <<< "$*") ]]; then
|
|
|
|
# called with -scantty isntead of device name?
|
|
|
|
# echo "-scantty mode"
|
|
|
|
|
|
|
|
# if upper USB port
|
|
|
|
if [[ -c /dev/ttyUSBupper ]]; then
|
|
|
|
ttyUSB=ttyUSBupper
|
|
|
|
|
|
|
|
# if hub in upper port, use highest numbered port on hub
|
|
|
|
elif [[ $(ls -1 /dev/ttyUSBupper_hub* 2> /dev/null | wc -l) -gt 0 ]]; then
|
|
|
|
ttyUSB=$(ls -1 /dev/ttyUSBupper_hub* 2> /dev/null | tail -1 | cut -c 6-)
|
|
|
|
|
|
|
|
# if hub in lower port with multiple adapters, use highest numbered port on hub
|
|
|
|
elif [[ $(ls -1 /dev/ttyUSBlower_hub* 2> /dev/null | wc -l) -gt 1 ]]; then
|
|
|
|
ttyUSB=$(ls -1 /dev/ttyUSBlower_hub* 2> /dev/null | tail -1 | cut -c 6-)
|
|
|
|
|
|
|
|
# no port found eligible for getty
|
|
|
|
else
|
|
|
|
# echo "scantty no devices eligible: sleeping"
|
|
|
|
sleep 86399
|
|
|
|
fi
|
2015-10-30 12:38:31 +00:00
|
|
|
|
2015-10-30 11:22:38 +00:00
|
|
|
# echo "result:$ttyUSB"
|
|
|
|
elif [[ $(grep -o 'ttyUSB[^ ]*' <<< "$*") ]]; then
|
|
|
|
# echo "device specified"
|
|
|
|
# if specified USB device name is found
|
|
|
|
ttyUSB=$(grep -o 'ttyUSB[^ ]*' <<< "$*")
|
|
|
|
else
|
|
|
|
# echo "specified device failed: sleeping"
|
|
|
|
sleep 86399
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -c /dev/$ttyUSB && ! $(ps aux | grep "[g]etty.*$ttyUSB") ]]; then
|
|
|
|
# if adapter seems to exist and doesn't already have a getty,
|
|
|
|
# kill all USB gettys and start the getty, otherwise do nothing
|
|
|
|
pkill -f "/sbin/getty.*ttyUSB"
|
|
|
|
exec /sbin/getty $(sed "s/-scanttyUSB/$ttyUSB/" <<< "$@");
|
|
|
|
else
|
|
|
|
# echo "getty already running or doesn't exist: sleeping"
|
|
|
|
sleep 86399
|
|
|
|
fi
|