2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
koreader/kodev

355 lines
7.5 KiB
Plaintext
Raw Normal View History

2016-02-01 06:43:46 +00:00
#!/bin/bash
CURDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
2016-02-16 02:08:04 +00:00
function assert_ret_zero {
2016-02-04 07:37:00 +00:00
if [ $1 -ne 0 ]; then
if [ ! -z $2 ]; then
echo $2
fi
exit 1
fi
}
2016-02-01 06:43:46 +00:00
function setup_env {
files=("./koreader-emulator-*/koreader")
export EMU_DIR=${files[0]}
}
function kodev-fetch-thirdparty {
make fetchthirdparty
}
SUPPORTED_TARGETS="
kindle For kindle with touch support
kindle-legacy For kindle2/3/4/DXG
kobo
android
pocketbook
ubuntu-touch
emu (*default) If no TARGET is given, assume emulator
win32
"
function kodev-build {
BUILD_HELP_MSG="
usage: build <TARGET>
TARGET:
${SUPPORTED_TARGETS}"
case $1 in
-h | --help)
echo "${BUILD_HELP_MSG}"
exit 0
;;
kindle)
make TARGET=kindle
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
kobo)
make TARGET=kobo
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
kindle-legacy)
make TARGET=kindle-legacy
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
android)
if [ ! -d ${CURDIR}/base/toolchain/android-toolchain ]; then
make android-toolchain
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
fi
make TARGET=android
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
pocketbook)
if [ ! -d ${CURDIR}/base/toolchain/pocketbook-toolchain ]; then
make pocketbook-toolchain
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
fi
make TARGET=pocketbook
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
ubuntu-touch)
make TARGET=ubuntu-touch
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
win32)
make TARGET=win32
2016-02-16 02:08:04 +00:00
assert_ret_zero $?
2016-02-01 06:43:46 +00:00
;;
*)
make
2016-02-16 02:08:04 +00:00
assert_ret_zero $? "Failed to build emulator!"
2016-02-01 06:43:46 +00:00
setup_env
;;
esac
}
function kodev-clean {
CLEAN_HELP_MSG="
usage: clean <TARGET>
TARGET:
${SUPPORTED_TARGETS}"
case $1 in
-h | --help)
echo "${CLEAN_HELP_MSG}"
exit 0
;;
kindle)
make TARGET=kindle clean
;;
kobo)
make TARGET=kobo clean
;;
kindle-legacy)
make TARGET=kindle-legacy clean
;;
android)
make TARGET=android clean
;;
pocketbook)
make TARGET=pocketbook clean
;;
ubuntu-touch)
make TARGET=ubuntu-touch clean
;;
win32)
make TARGET=win32 clean
;;
*)
make clean
;;
esac
}
function kodev-release {
# SUPPORTED_RELEASE_TARGETS=$(echo ${SUPPORTED_TARGETS} | sed 's/win32//')
SUPPORTED_RELEASE_TARGETS="${SUPPORTED_TARGETS/emu*/""}"
RELEASE_HELP_MSG="
usage: release <TARGET>
TARGET:
${SUPPORTED_RELEASE_TARGETS}"
if [ $# -lt 1 ]; then
echo "${RELEASE_HELP_MSG}"
exit 1
fi
case $1 in
-h | --help)
echo "${RELEASE_HELP_MSG}"
exit 0
;;
kindle)
kodev-build kindle
make TARGET=kindle update
;;
kobo)
kodev-build kobo
make TARGET=kobo update
;;
kindle-legacy)
kodev-build kindle-legacy
make TARGET=kindle-legacy update
;;
android)
kodev-build android
make TARGET=android update
;;
pocketbook)
kodev-build pocketbook
make TARGET=pocketbook update
;;
ubuntu-touch)
kodev-build pocketbook
make TARGET=ubuntu-touch update
;;
*)
echo "Unsupported target for release: $1."
echo "${RELEASE_HELP_MSG}"
exit 1
;;
esac
}
function kodev-wbuilder {
kodev-build
echo "[*] Running wbuilder.lua..."
pushd ${EMU_DIR}
EMULATE_READER_W=540 EMULATE_READER_H=720 ./luajit ./utils/wbuilder.lua
popd
}
function kodev-run {
RUN_HELP_MSG="
usage: run <OPTIONS> <ARGS>
OPTIONS:
--no-build run reader without rebuilding
--disable-touch use this if you want to simulate keyboard only devices
"
while [[ $1 == '--'* ]]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
case $PARAM in
--disable-touch)
export DISABLE_TOUCH=1
;;
--no-build)
no_build=true
;;
-h | --help)
echo "${RUN_HELP_MSG}"
exit 0
;;
*)
echo "ERROR: unknown option \"$PARAM\""
echo "${RUN_HELP_MSG}"
exit 1
;;
esac
shift
done
if [ ! ${no_build} ]; then
echo "[*] Building KOReader..."
kodev-build
else
setup_env
fi
2016-02-04 04:34:10 +00:00
if [ ! -d ${EMU_DIR} ]; then
echo "Failed to find emulator directory! Please try build command first."
exit 1
fi
2016-02-01 06:43:46 +00:00
echo "[*] Running KOReader..."
pushd ${EMU_DIR}
if [ $# -lt 1 ]; then
args=${CURDIR}/test
else
args="$1"
[[ $args != /* ]] && args="${CURDIR}/$1"
fi
EMULATE_READER_W=540 EMULATE_READER_H=720 ./reader.lua -d $args
popd
}
2016-02-04 07:37:00 +00:00
function kodev-test {
TEST_HELP_MSG="
usage: test <OPTIONS> [front|base] <TEST_NAME>
2016-02-04 07:37:00 +00:00
TEST_NAME is optional. If no TEST_NAME is given, all tests will be run.
OPTIONS:
--tags=TAGS only run tests with given tags
2016-02-04 07:37:00 +00:00
"
while [[ $1 == '--'* ]]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
case $PARAM in
--tags)
opts="--tags=${VALUE}"
;;
-h | --help)
echo "${TEST_HELP_MSG}"
exit 0
;;
*)
echo "ERROR: unknown option \"$PARAM\""
echo "${TEST_HELP_MSG}"
exit 1
;;
esac
shift
done
2016-02-04 07:37:00 +00:00
if [ $# -lt 1 ]; then
echo "${TEST_HELP_MSG}"
exit 1
fi
setup_env
make ${EMU_DIR}/.busted
pushd ${EMU_DIR}
test_path=./spec/$1/unit
if [ ! -z $2 ]; then
test_path="${test_path}/$2"
fi
busted ${opts} -o verbose_print --exclude-tags=notest ${test_path}
2016-02-04 07:37:00 +00:00
popd
}
2016-02-01 06:43:46 +00:00
HELP_MSG="
usage: $0 COMMAND <ARGS>
Supported commands:
2016-02-11 06:27:41 +00:00
fetch-thirdparty Fetch thirdparty dependencies for build
build Build KOReader
clean Clean KOReader build
release Build KOReader release package
run Run KOReader
wbuilder Run wbuilder.lua script (useful for building new UI widget)
test Run tests
2016-02-01 06:43:46 +00:00
"
if [ $# -lt 1 ]; then
echo "Missing command."
echo "${HELP_MSG}"
exit 1
fi
case $1 in
fetch-thirdparty)
kodev-fetch-thirdparty
;;
clean)
shift 1
kodev-clean $@
;;
build)
shift 1
kodev-build $@
;;
release)
shift 1
kodev-release $@
;;
wbuilder)
kodev-wbuilder
;;
run)
shift 1
kodev-run $@
;;
2016-02-04 07:37:00 +00:00
test)
shift 1
kodev-test $@
;;
2016-02-01 06:43:46 +00:00
--help | -h)
echo "${HELP_MSG}"
exit 0
;;
*)
echo "Unknown command: $1."
echo "${HELP_MSG}"
exit 1
;;
esac