diff --git a/kodev b/kodev index 3ee8b0dec..cb1dc7180 100755 --- a/kodev +++ b/kodev @@ -1,6 +1,7 @@ #!/bin/bash CURDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +VERSION=$(git describe HEAD) function assert_ret_zero() { if [ "$1" -ne 0 ]; then @@ -351,7 +352,7 @@ function kodev-wbuilder() { function kodev-run() { RUN_HELP_MSG=" -usage: run +usage: run OPTIONS: @@ -363,6 +364,10 @@ OPTIONS: -s=FOO --simulate=FOO simulate dimension and other specs for a given device model supported model: kobo-aura-one, kindle3, hidpi --graph graph memory use (requires gnuplot) + +TARGET: + + android install and run KOReader on an Android device connected through ADB " screen_width=540 screen_height=720 @@ -429,48 +434,68 @@ OPTIONS: shift done - if [ ! ${no_build} ]; then - echo "[*] Building KOReader..." - kodev-build - else - setup_env - fi + case $1 in + android) + command -v adb >/dev/null && { + if [ ! ${no_build} ]; then + echo "[*] Building KOReader for Android…" + kodev-release --ignore-translation android + fi + # clear logcat to get rid of useless cruft + adb logcat -c + # uninstall existing package to make sure *everything* is gone from memory + adb uninstall "org.koreader.launcher" + adb install "koreader-android-arm-linux-androideabi-${VERSION}.apk" + # there's no adb run so we do this… + adb shell monkey -p org.koreader.launcher -c android.intent.category.LAUNCHER 1 + adb logcat + } || echo "Failed to find adb in PATH to interact with Android device." + ;; + *) + if [ ! ${no_build} ]; then + echo "[*] Building KOReader…" + kodev-build + else + setup_env + fi - if [ ! -d "${EMU_DIR}" ]; then - echo "Failed to find emulator directory! Please try build command first." - exit 1 - fi + if [ ! -d "${EMU_DIR}" ]; then + echo "Failed to find emulator directory! Please try build command first." + exit 1 + fi - if [ ${graph_memory} ]; then - gnuplot_wrapper "--parent $$" "reader.lua" - fi + if [ ${graph_memory} ]; then + gnuplot_wrapper "--parent $$" "reader.lua" + fi - # run with catchsegv by default when it is available - # see https://github.com/koreader/koreader/issues/2878#issuecomment-326796777 - if command -v catchsegv >/dev/null; then - CATCHSEGV=$(which catchsegv) - fi + # run with catchsegv by default when it is available + # see https://github.com/koreader/koreader/issues/2878#issuecomment-326796777 + if command -v catchsegv >/dev/null; then + CATCHSEGV=$(which catchsegv) + fi - echo "[*] Running KOReader with arguments: $*..." - pushd "${EMU_DIR}" && { - if [ $# -lt 1 ]; then - args=${CURDIR}/test - else - args="$*" - [[ $args != /* ]] && args="${CURDIR}/${args}" - fi + echo "[*] Running KOReader with arguments: $*..." + pushd "${EMU_DIR}" && { + if [ $# -lt 1 ]; then + args=${CURDIR}/test + else + args="$*" + [[ $args != /* ]] && args="${CURDIR}/${args}" + fi - RETURN_VALUE=85 - while [ $RETURN_VALUE -eq 85 ]; do - EMULATE_READER_W=${screen_width} EMULATE_READER_H=${screen_height} EMULATE_READER_DPI=${screen_dpi} \ - $CATCHSEGV ./reader.lua -d "$args" - RETURN_VALUE=$? - done - } && popd || exit + RETURN_VALUE=85 + while [ $RETURN_VALUE -eq 85 ]; do + EMULATE_READER_W=${screen_width} EMULATE_READER_H=${screen_height} EMULATE_READER_DPI=${screen_dpi} \ + $CATCHSEGV ./reader.lua -d "$args" + RETURN_VALUE=$? + done + } && popd || exit - if [ ${graph_memory} ]; then - capture_ctrl_c - fi + if [ ${graph_memory} ]; then + capture_ctrl_c + fi + ;; + esac } function kodev-test() {