|
|
@ -0,0 +1,65 @@ |
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
exists() { |
|
|
|
command -v "$1" >/dev/null 2>&1 |
|
|
|
} |
|
|
|
|
|
|
|
echo_pad() { |
|
|
|
string=$1 |
|
|
|
pad=$2 |
|
|
|
printf '%s' "$string" |
|
|
|
printf '%*s' $(( $pad - ${#string} )) |
|
|
|
} |
|
|
|
|
|
|
|
useAvahi() { |
|
|
|
|
|
|
|
echo_pad "#" 4 |
|
|
|
echo_pad "HOSTNAME" 20 |
|
|
|
echo_pad "IP" 20 |
|
|
|
echo_pad "DEVICE" 30 |
|
|
|
echo_pad "VERSION" 10 |
|
|
|
echo |
|
|
|
|
|
|
|
printf -v line '%*s\n' 84 |
|
|
|
echo ${line// /-} |
|
|
|
|
|
|
|
counter=0 |
|
|
|
|
|
|
|
avahi-browse -t -r -p "_arduino._tcp" 2>/dev/null | grep ^= | while read line; do |
|
|
|
|
|
|
|
(( counter++ )) |
|
|
|
|
|
|
|
hostname=`echo $line | cut -d ';' -f4` |
|
|
|
ip=`echo $line | cut -d ';' -f8` |
|
|
|
txt=`echo $line | cut -d ';' -f10` |
|
|
|
board=`echo $txt | sed -n "s/.*espurna_board=\([^\"]*\).*/\1/p"` |
|
|
|
version=`echo $txt | sed -n "s/.*espurna_version=\([^\"]*\).*/\1/p"` |
|
|
|
|
|
|
|
echo_pad "$counter" 4 |
|
|
|
echo_pad "$hostname" 20 |
|
|
|
echo_pad "$ip" 20 |
|
|
|
echo_pad "$board" 30 |
|
|
|
echo_pad "$version" 10 |
|
|
|
echo |
|
|
|
|
|
|
|
done |
|
|
|
|
|
|
|
echo |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
# ------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
# Welcome |
|
|
|
echo |
|
|
|
echo "--------------------------------------------------------------" |
|
|
|
echo "OTA-UPDATABLE DEVICES" |
|
|
|
echo "--------------------------------------------------------------" |
|
|
|
echo |
|
|
|
|
|
|
|
if exists avahi-browse; then |
|
|
|
useAvahi |
|
|
|
else |
|
|
|
echo "Avahi not installed" |
|
|
|
exit 1 |
|
|
|
fi |