RetroArch/wiiu/net_listen.sh
Nathan Strong d3f8d8a08d wiiu: small cleanup
== DETAILS
- remove extraneous '+' from a manually applied diff
- fix the net_listen.sh script so it works properly on
  Mac OSX

== TESTING
Works locally.
2018-10-10 11:38:03 -07:00

83 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# This script listens for the WiiU network logger and prints the messages to
# the terminal.
#
# If you would like a logfile, pipe this script's output to tee.
NETCAT=
find_netcat()
{
NETCAT=$(which netcat 2>/dev/null |grep '/')
if [ -z "$NETCAT" ]; then
NETCAT=$(which nc 2>/dev/null |grep '/')
if [ -z "$NETCAT" ]; then
echo "Failed to find either 'netcat' or 'nc'. Please install it."
exit 1
fi
fi
}
do_readlink()
{
local exe=$1
echo "$(cd $(dirname $exe) && pwd)"
}
find_netcat
script_dir=$(do_readlink $0)
IP=$(which ip 2>/dev/null | grep '^/')
IFCONFIG=$(which ifconfig 2>/dev/null | grep '^/')
TS=$(which ts 2>/dev/null | grep '^/')
# Using wiiu-devel.properties ensure your make file and this listen script
# stay in sync with each other.
#
# See wiiu-devel.properties.template for instructions.
if [ -e "$script_dir/../wiiu-devel.properties" ]; then
. $script_dir/../wiiu-devel.properties
fi
if [ -z "$PC_DEVELOPMENT_TCP_PORT" ]; then
PC_DEVELOPMENT_TCP_PORT=4405
fi
exit_listen_loop=0
getBroadcastIp()
{
if [ ! -z "$IP" ]; then
$IP addr show | grep 'inet' |grep 'brd' | awk '{print $4}'
elif [ ! -z "$IFCONFIG" ]; then
$IFCONFIG | grep 'broadcast' | awk '{print $6}'
else
echo "255.255.255.255"
fi
}
#
# This prevents a tug-of-war between bash and netcat as to who gets the
# CTRL+C code.
#
trap 'exit_listen_loop=1' SIGINT
if [ -z "$TS" ]; then
echo "[WARN] 'ts' not found. Install the moreutils package to get timestamps."
fi
broadcast=$(getBroadcastIp)
echo "Listening for UDP packets on broadcast IP: $broadcast"
while [ $exit_listen_loop -eq 0 ]; do
echo ========= `date` =========
if [ -z "$TS" ]; then
$NETCAT -kluw 0 $broadcast $PC_DEVELOPMENT_TCP_PORT
else
$NETCAT -kluw 0 $broadcast $PC_DEVELOPMENT_TCP_PORT |ts '[%Y-%m-%d %H:%M:%.S]'
fi
done