30 lines
687 B
Bash
30 lines
687 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
function onOSX () {
|
||
|
return [[ $(uname) == "Darwin" ]]
|
||
|
}
|
||
|
|
||
|
function findLocalService () {
|
||
|
|
||
|
local SVC="$1"
|
||
|
|
||
|
if onOSX; then
|
||
|
local OUT="$(
|
||
|
echo -e "spawn -noecho dns-sd -Z $SVC\nexpect -timeout 1 eof {}" |
|
||
|
expect -f - |
|
||
|
grep SRV | egrep -v '^\s*;'
|
||
|
)"
|
||
|
local PORT="$(echo $OUT | awk '{print $5}')"
|
||
|
local HOST="$(echo $OUT | awk '{print $6}')"
|
||
|
else
|
||
|
# linux only for now
|
||
|
local OUT="$(avahi-browse -p -t -r $SVC | grep '^=' | head -1)"
|
||
|
local NAME="$(echo \"$AL\" | cut -d';' -f 8)"
|
||
|
local PORT="$(echo \"$AL\" | cut -d';' -f 9)"
|
||
|
fi
|
||
|
|
||
|
echo $HOST:$PORT
|
||
|
}
|