| #!/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 $? |
| } |