#!/bin/bash # check if arguments are provided if [ $# -ne 1 ] ; then echo "No arguments provided" exit 1 fi # set device for adb if [ $1 == "-lw" ] || [ $1 == "-ow" ] ; then DEVICE="-s localhost:4444" elif [ $1 == "-lp" ] || [ $1 == "-op" ] ; then DEVICE="" else echo "Arguments provided are invalid" exit 1 fi # delete the old nav.log on device adb $DEVICE shell "rm /sdcard/nav.log 2>/dev/null" 2>/dev/null # now run an infinite loop while [ 0 ] do # read nav.log adb $DEVICE pull /sdcard/nav.log 2>/dev/null if [ -f "nav.log" ] then # delete nav.log on device adb $DEVICE shell "rm /sdcard/nav.log 2>/dev/null" 2>/dev/null # read nav.log line by line cat nav.log 2>/dev/null| while read line do echo $line # handle osx if [ $1 == "-ow" ] || [ $1 == "-op" ] ; then case $line in l) echo 'tell application "System Events" to key code 123'|osascript ;; r) echo 'tell application "System Events" to key code 124'|osascript ;; t) echo 'tell application "System Events" to key code 126'|osascript ;; b) echo 'tell application "System Events" to key code 125'|osascript ;; esac # handle for linux elif [ $1 == "-lw" ] || [ $1 == "-lp" ] ; then case $line in l) xdotool key Left ;; r) xdotool key Right ;; t) xdotool key Up ;; b) xdotool key Down ;; esac fi done # remove the local nav.log rm nav.log 2>/dev/null fi done