From d014df2d6befd02ba3189e051fd8d4c5e36d06a7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 23 May 2011 18:48:30 +0200 Subject: [PATCH] transmission: fix startup, update to transmission-2.31 Signed-off-by: Stephan Raue --- .../addons/downloadmanager/transmission/addon | 3 + .../transmission/changelog.txt | 3 + .../addons/downloadmanager/transmission/meta | 4 +- .../transmission/source/default.py | 21 ++++-- .../transmission/source/settings.xml | 6 ++ .../transmission/source/start.sh | 65 +++++++++++++++++-- 6 files changed, 90 insertions(+), 12 deletions(-) create mode 100644 packages/addons/downloadmanager/transmission/source/settings.xml diff --git a/packages/addons/downloadmanager/transmission/addon b/packages/addons/downloadmanager/transmission/addon index 909fab06e8..56f88c6a3d 100755 --- a/packages/addons/downloadmanager/transmission/addon +++ b/packages/addons/downloadmanager/transmission/addon @@ -22,6 +22,9 @@ . config/options $1 +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID + cp $PKG_DIR/config/settings.xml $ADDON_BUILD/$PKG_ADDON_ID + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin cp $PKG_BUILD/daemon/transmission-daemon $ADDON_BUILD/$PKG_ADDON_ID/bin diff --git a/packages/addons/downloadmanager/transmission/changelog.txt b/packages/addons/downloadmanager/transmission/changelog.txt index 7ccba46688..a0a9d4eea0 100644 --- a/packages/addons/downloadmanager/transmission/changelog.txt +++ b/packages/addons/downloadmanager/transmission/changelog.txt @@ -1,2 +1,5 @@ +0.99.2 +- update to transmission-2.31 + 0.99.1 - initial version transmission-2.20 \ No newline at end of file diff --git a/packages/addons/downloadmanager/transmission/meta b/packages/addons/downloadmanager/transmission/meta index 6afb5a0f8a..37a0bb4e4f 100644 --- a/packages/addons/downloadmanager/transmission/meta +++ b/packages/addons/downloadmanager/transmission/meta @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="transmission" -PKG_VERSION="2.20" -PKG_REV="1" +PKG_VERSION="2.31" +PKG_REV="2" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.transmissionbt.com/" diff --git a/packages/addons/downloadmanager/transmission/source/default.py b/packages/addons/downloadmanager/transmission/source/default.py index 5f07881ccc..1acdc284b2 100644 --- a/packages/addons/downloadmanager/transmission/source/default.py +++ b/packages/addons/downloadmanager/transmission/source/default.py @@ -18,9 +18,20 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -import sys -import xbmcaddon -import os +import xbmc, time, os, subprocess -if ( __name__ == "__main__" ): - os.system("sh start.sh") +dir = os.path.realpath(os.path.dirname(__file__)) +script = 'start.sh' + +launcher = os.path.join(dir, script) +app = '/storage/.xbmc/addons/addon.downloadmanager.transmission/bin/transmission-daemon' + +os.chmod(launcher, 0755) +os.chmod(app, 0755) + +args = [launcher, str(os.getpid()), app] + +p = subprocess.Popen(args) +print p.pid +p.wait() +os.exit(1) diff --git a/packages/addons/downloadmanager/transmission/source/settings.xml b/packages/addons/downloadmanager/transmission/source/settings.xml new file mode 100644 index 0000000000..ed63074495 --- /dev/null +++ b/packages/addons/downloadmanager/transmission/source/settings.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/addons/downloadmanager/transmission/source/start.sh b/packages/addons/downloadmanager/transmission/source/start.sh index b771950cf1..5aa65352bc 100755 --- a/packages/addons/downloadmanager/transmission/source/start.sh +++ b/packages/addons/downloadmanager/transmission/source/start.sh @@ -20,10 +20,46 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -export TRANSMISSION_WEB_HOME="./web" -export PATH="$PATH:./bin" +XBMC_PID=$1 +APP=$2 +SCRIPT_DIR=$(dirname `readlink -f $0`) +ADDON_HOME="$HOME/.xbmc/userdata/addon_data/addon.downloadmanager.transmission" +PATH="${PATH}:${SCRIPT_DIR}/bin" +LOG_FILE="${ADDON_HOME}/service.log" -OPENELEC_SETTINGS="$HOME/.xbmc/userdata/addon_data/addon.downloadmanager.transmission/settings.xml" +cleanup() { + local EXIT_STATUS=$1 + if [ -n "${EXIT_STATUS}" ];then + EXIT_STATUS=0 + fi + kill -15 "${APP_PID}" + exit $EXIT_STATUS; +} + +# trap signals for clean shutdown + trap cleanup 1 2 3 15 + +launch_app() { + local PID + eval "${APP} ${TRANSMISSION_ARG} &>${LOG_FILE} &" + APP_PID=$! +} + +pid_is_running() { + local PID=${1} + for IPID in `ps -o pid | sed 's/[A-Za-z]//g' | sed 's/\ //g'`;do + if [ ${IPID} -eq ${PID} ];then + return 0 + fi + done + return 1 +} + +app_prep() { + +export TRANSMISSION_WEB_HOME="$SCRIPT_DIR/web" + +OPENELEC_SETTINGS="$ADDON_HOME/settings.xml" if [ ! -f "$OPENELEC_SETTINGS" ]; then cp settings.xml $OPENELEC_SETTINGS @@ -49,6 +85,7 @@ TRANSMISSION_ARG="$TRANSMISSION_ARG --watch-dir /storage/downloads/watch" TRANSMISSION_ARG="$TRANSMISSION_ARG -e /var/log/transmission.log" TRANSMISSION_ARG="$TRANSMISSION_ARG -g /storage/.cache/transmission" TRANSMISSION_ARG="$TRANSMISSION_ARG -a $TRANSMISSION_IP" +TRANSMISSION_ARG="$TRANSMISSION_ARG -f" if [ "$TRANSMISSION_AUTH" = "true" ]; then TRANSMISSION_ARG="$TRANSMISSION_ARG -t" @@ -58,6 +95,24 @@ else TRANSMISSION_ARG="$TRANSMISSION_ARG -T" fi -chmod +x ./bin/transmission-daemon +} -transmission-daemon $TRANSMISSION_ARG +main() { + app_prep + launch_app "${APP}" + pid_is_running "${XBMC_PID}" + XBMC_RUNNING=$? + pid_is_running "${APP_PID}" + APP_RUNNING=$? + + while [ $XBMC_RUNNING -eq 0 -a ${APP_RUNNING} -eq 0 ]; do + sleep 1 + pid_is_running "${XBMC_PID}" + XBMC_RUNNING=$? + pid_is_running "${APP_PID}" + APP_RUNNING=$? + done +} + +main +cleanup