transmission: fix startup, update to transmission-2.31

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-05-23 18:48:30 +02:00
parent 1611c181d4
commit d014df2d6b
6 changed files with 90 additions and 12 deletions

View File

@ -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

View File

@ -1,2 +1,5 @@
0.99.2
- update to transmission-2.31
0.99.1
- initial version transmission-2.20

View File

@ -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/"

View File

@ -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)

View File

@ -0,0 +1,6 @@
<settings>
<setting id="TRANSMISSION_AUTH" value="false" />
<setting id="TRANSMISSION_IP" value="*.*.*.*" />
<setting id="TRANSMISSION_PWD" value="openelec" />
<setting id="TRANSMISSION_USER" value="openelec" />
</settings>

View File

@ -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