#!/sbin/runscript # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # 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:-/var/log/transmission.log} runas_user=${runas_user:-root} # 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 # 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} --user ${runas_user} \ --stdout ${logfile} --stderr ${logfile} --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 $? }