blob: f68c3f6e51b0a01a937ab4435b38c91d35e75d5e [file] [log] [blame]
#!/sbin/runscript
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-p2p/transmission/files/transmission-daemon.initd.2,v 1.1 2009/06/20 12:55:37 ssuominen Exp $
# Read options from conf.d file, or set sensible defaults
allowed=${allowed:-127.0.0.1}
blocklist=${blocklist:-no}
watch_dir=${watch_dir:-}
config_dir=${config_dir:-/var/transmission/config}
port=${port:-9091}
auth=${auth:-no}
username=${username:-}
password=${password:-}
download_dir=${download_dir:=/var/transmission/downloads}
peerport=${peerport:-51413}
portmap=${portmap:-no}
peerlimit_global=${peerlimit_global:-240}
peerlimit_torrent=${peerlimit_torrent:-60}
encryption=${encryption:-preferred}
bind_address_ipv4=${bind_address_ipv4:-}
bind_address_ipv6=${bind_address_ipv6:-}
rpc_bind_address=${rpc_bind_address:-}
# Misc options
pidfile=${pidfile:-/var/run/transmission.pid}
logfile=${logfile:-}
runas_user=${runas_user:-}
# Convert settings into stuff that transmission-daemon can grok as arguments
allowed_opt="--allowed ${allowed}"
blocklist_opt="--no-blocklist"
if [ "x${blocklist}" = "xyes" ]; then
blocklist_opt="--blocklist"
fi
watch_dir_opt="--no-watch-dir"
if [ -n "${watch_dir}" ]; then
watch_dir_opt="--watch-dir ${watch_dir}"
fi
config_dir_opt="--config-dir ${config_dir}"
port_opt="--port ${port}"
auth_opt="--no-auth"
username_opt=""
password_opt=""
if [ "x${auth}" = "xyes" ]; then
auth_opt="--auth"
# Set username and password also
username_opt="--username ${username}"
password_opt="--password ${password}"
fi
download_dir_opt="--download-dir ${download_dir}"
peerport_opt="--peerport ${peerport}"
portmap_opt="--no-portmap"
if [ "x${portmap}" = "xyes" ]; then
portmap_opt="--portmap"
fi
peerlimit_global_opt="--peerlimit-global ${peerlimit_global}"
peerlimit_torrent_opt="--peerlimit-torrent ${peerlimit_torrent}"
case "${encryption}" in
'required') encryption_opt="--encryption-required" ;;
'tolerated') encryption_opt="--encryption-tolerated" ;;
*) encryption_opt="--encryption-preferred" ;;
esac
bind_address_ipv4_opt=""
if [ -n "${bind_address_ipv4}" ]; then
bind_address_ipv4_opt="--bind-address-ipv4 ${bind_address_ipv4}"
fi
bind_address_ipv6_opt=""
if [ -n "${bind_address_ipv6}" ]; then
bind_address_ipv6_opt="--bind-address-ipv6 ${bind_address_ipv6}"
fi
rpc_bind_address_opt=""
if [ -n "${rpc_bind_address}" ]; then
rpc_bind_address_opt="--rpc-bind-address ${rpc_bind_address}"
fi
# Note: works only on systems with sys-apps/openrc
logfile_opt=""
if [ -n "${logfile}" ]; then
logfile_opt="--stdout ${logfile} --stderr ${logfile}"
fi
# Note: works only on systems with sys-apps/openrc
# This could be done in baselayout-1 with --chuid, but since
# openrc detection is vague at best (b.g.o #270646), just ignore it.
runas_user_opt=""
if [ -n "${runas_user}" ]; then
runas_user_opt="--user ${runas_user}"
fi
# Actual init script stuff below this line
opts="start stop"
description="Transmission is a fast, easy and free bittorrent client"
description_start="Start transmission-daemon server and web interface"
description_stop="Stop transmission-daemon server and web interface"
depend() {
need net
}
start() {
ebegin "Starting transmission daemon"
start-stop-daemon --start --quiet --background --make-pidfile \
--pidfile ${pidfile} ${runas_user_opt} \
${logfile_opt} --exec \
/usr/bin/transmission-daemon -- --foreground ${allowed_opt} \
${blocklist_opt} ${watch_dir_opt} ${config_dir_opt} ${port_opt} \
${auth_opt} ${username_opt} ${password_opt} ${download_dir_opt} \
${peerport_opt} ${portmap_opt} ${peerlimit_global_opt} \
${peerlimit_torrent_opt} ${encryption_opt} \
${bind_address_ipv4_opt} ${bind_address_ipv6_opt} ${rpc_bind_address_opt}
eend $?
}
stop() {
ebegin "Stopping transmission daemon"
start-stop-daemon --stop --quiet --retry TERM/45/QUIT/15 \
--pidfile ${pidfile}
eend $?
}