Moving roku helper commands to _roku.sh
This commit is contained in:
188
_roku.sh
Executable file
188
_roku.sh
Executable file
@@ -0,0 +1,188 @@
|
||||
#!/bin/sh
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Helper functions
|
||||
#
|
||||
|
||||
__set_server_ip()
|
||||
{
|
||||
SERVER_IP=$(ip route get "${ROKU_DEV_TARGET}" | sed -n "s/.* src \([\.0-9]*\) .*/\1/p")
|
||||
}
|
||||
|
||||
__netcat()
|
||||
{
|
||||
if [ "$1" != "" ]; then
|
||||
netcat -t $ROKU_DEV_TARGET $1
|
||||
else
|
||||
netcat -t $ROKU_DEV_TARGET 23
|
||||
fi
|
||||
}
|
||||
|
||||
__app_cmd()
|
||||
{
|
||||
echo "$1
|
||||
exit" | __netcat 8080
|
||||
}
|
||||
|
||||
__device_cmd()
|
||||
{
|
||||
echo "$1; exit" | __netcat
|
||||
}
|
||||
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Run commands on active device
|
||||
#
|
||||
_roku_telnet()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
telnet "$ROKU_DEV_TARGET" $1
|
||||
}
|
||||
|
||||
_roku_flash()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
__set_server_ip
|
||||
__device_cmd ". /nvram/san; export SERVER_IP=$SERVER_IP; rokuflash $1"
|
||||
}
|
||||
|
||||
_roku_log()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
__device_cmd "setconsole /dev/pts/0"
|
||||
}
|
||||
|
||||
_roku_reboot()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
__device_cmd "reboot"
|
||||
}
|
||||
|
||||
_roku_san_update()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
__set_server_ip
|
||||
__device_cmd "wget -O /nvram/san http://${SERVER_IP}/roku/san/san"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Retrieve audio.
|
||||
#
|
||||
_roku_audcap()
|
||||
{
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
__set_server_ip
|
||||
__app_cmd "audcap record start 00"
|
||||
echo -n "Press Enter to stop capture."
|
||||
read
|
||||
__app_cmd "audcap record stop"
|
||||
__device_cmd "tftp -p -r $1.pcm -l /tmp/audcap_audio.pcm $SERVER_IP"
|
||||
sox -t raw -r 48000 -b 16 -c 2 -e signed-integer $1.pcm $1.wav
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Work with channels.
|
||||
#
|
||||
_roku_token_install()
|
||||
{
|
||||
[ ! -f "$1" ] && echo "usage: install_auth_toke <auth token file> \n ROKU_DEV_TARGET=${ROKU_DEV_TARGET}" && return 0
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
curl --data-binary @$1 http://${ROKU_DEV_TARGET}:8060/token/install
|
||||
}
|
||||
|
||||
_roku_sideload()
|
||||
{
|
||||
[ ! -f "$1" ] && echo "usage: sideload <file> \n ${ROKU_DEV_TARGET}=${ROKU_DEV_TARGET}" && return 0
|
||||
[ -z "$ROKU_DEV_TARGET" ] && echo "ROKU_DEV_TARGET must be defined" && return 0
|
||||
curl --anyauth --user "rokudev:${DEVPASSWORD}" -F "mysubmit=Install_Netflix" -F "archive=@$1" http://${ROKU_DEV_TARGET}/plugin_install
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Logging
|
||||
#
|
||||
LOGDIR="${HOME}/roku/logs"
|
||||
|
||||
|
||||
dcapture()
|
||||
{
|
||||
nc minicom "$@" -C $LOGDIR/.log.$(date +%Y-%m-%d--%H-%M-%S)
|
||||
}
|
||||
|
||||
|
||||
dfile()
|
||||
{
|
||||
local Nth="-1"
|
||||
if [ $# -gt 0 ]; then
|
||||
Nth="$1"
|
||||
fi
|
||||
|
||||
echo $(ls -tr -1 ${LOGDIR}/minicom.log.* | tail ${Nth} | head -1)
|
||||
}
|
||||
|
||||
dless()
|
||||
{
|
||||
less $(lfile "$@")
|
||||
}
|
||||
|
||||
dcat()
|
||||
{
|
||||
cat $(lfile "$@")
|
||||
}
|
||||
|
||||
dgrep()
|
||||
{
|
||||
lcat | grep -a --color "$@"
|
||||
}
|
||||
|
||||
dtail()
|
||||
{
|
||||
if [ $# -gt 0 ]; then
|
||||
tail -f $(lfile) | grep "$@"
|
||||
else
|
||||
tail -f $(lfile)
|
||||
fi
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Misc
|
||||
#
|
||||
|
||||
_roku_get()
|
||||
{
|
||||
[ -z "$1" ] && echo "usage: rokuget <url>" && return 0
|
||||
if [ -z "$ROKU_CORP_PASSWORD" ]; then
|
||||
local USER_PASSWORD="--ask-password"
|
||||
else
|
||||
local USER_PASSWORD="--password=$ROKU_CORP_PASSWORD"
|
||||
fi
|
||||
wget --no-check-certificate --user=vkhachatryan $USER_PASSWORD $1
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
# Dispatch commands.
|
||||
#
|
||||
|
||||
help()
|
||||
{
|
||||
echo "Command is not recognised."
|
||||
}
|
||||
|
||||
FUNC=help
|
||||
if [ "$(type -t _roku_$1)" == "function" ]; then
|
||||
FUNC=_roku_$1
|
||||
shift
|
||||
elif [ "$(type -t _roku_$1_$2)" == "function" ]; then
|
||||
FUNC=_roku_$1_$2
|
||||
shift
|
||||
shift
|
||||
fi
|
||||
|
||||
$FUNC "$@"
|
||||
|
||||
Reference in New Issue
Block a user