diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.service b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start similarity index 89% rename from packages/addons/service/downloadmanager/transmission/source/bin/transmission.service rename to packages/addons/service/downloadmanager/transmission/source/bin/transmission.start index c8893fd38e..3edcc50b2e 100755 --- a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.service +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start @@ -26,6 +26,9 @@ ADDON_DIR="$HOME/.xbmc/addons/service.downloadmanager.transmission" ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.downloadmanager.transmission" LOG_FILE="$ADDON_HOME/service.log" +LOCKDIR="/var/lock/" +LOCKFILE="transmission.disabled" + export TRANSMISSION_WEB_HOME="$ADDON_DIR/web" mkdir -p $ADDON_HOME @@ -67,5 +70,14 @@ fi if [ ! "$(pidof transmission-daemon)" ];then chmod +x $ADDON_DIR/lib/* - LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" transmission-daemon $TRANSMISSION_ARG &>$LOG_FILE + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then + rm -rf "$LOCKDIR/$LOCKFILE" + fi + while [ true ] ; do + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then + break + fi + LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" transmission-daemon -f $TRANSMISSION_ARG &>$LOG_FILE + sleep 1 + done & fi diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.stop b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.stop new file mode 100755 index 0000000000..0bded7b9b3 --- /dev/null +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.stop @@ -0,0 +1,32 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. /etc/profile + +LOCKDIR="/var/lock/" +LOCKFILE="transmission.disabled" + +if [ "$(pidof transmission-daemon)" ];then + mkdir -p "$LOCKDIR" + touch "$LOCKDIR/$LOCKFILE" + killall -9 transmission-daemon +fi diff --git a/packages/addons/service/downloadmanager/transmission/source/default.py b/packages/addons/service/downloadmanager/transmission/source/default.py index 053d217ef5..25e184d622 100644 --- a/packages/addons/service/downloadmanager/transmission/source/default.py +++ b/packages/addons/service/downloadmanager/transmission/source/default.py @@ -21,12 +21,24 @@ import os import sys import xbmcaddon +import time +import subprocess __scriptname__ = "Transmission BT Client" __author__ = "OpenELEC" __url__ = "http://www.openelec.tv" __settings__ = xbmcaddon.Addon(id='service.downloadmanager.transmission') __cwd__ = __settings__.getAddonInfo('path') -__path__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "transmission.service") ) +__start__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "transmission.start") ) +__stop__ = xbmc.translatePath( os.path.join( __cwd__, 'bin', "transmission.stop") ) + +#make binary files executable in adson bin folder +subprocess.Popen("chmod -R +x " + __cwd__ + "/bin/*" , shell=True, close_fds=True) + +subprocess.Popen(__start__, shell=True, close_fds=True) + +while (not xbmc.abortRequested): + time.sleep(0.250) + +subprocess.Popen(__stop__, shell=True, close_fds=True) -os.system(__path__)