linuxigd: broken for ages, moved to abandoned github feed
[openwrt/svn-archive/packages.git] / net / deluge / files / deluge.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2010-2011 OpenWrt.org
3 # Copyright (C) 2010 Alexander Sulfrian
4
5 START=50
6 STOP=50
7
8 SERVICE_DAEMONIZE=1
9 SERVICE_WRITE_PID=1
10 SERVICE_PID_FILE="/var/run/deluged.pid"
11
12 error() {
13 echo "${initscript}:" "$@" 1>&2
14 }
15
16 section_enabled() {
17 config_get_bool enabled "$1" 'enabled' 0
18 [ $enabled -gt 0 ]
19 }
20
21 start_instance() {
22 local s="$1"
23
24 section_enabled "$s" || return 1
25
26 config_get uid "$s" 'user'
27 [ -n "$uid" ] || {
28 error "user is not set"
29 return 1
30 }
31 user_exists $uid || {
32 error "user '$uid' dos not exist"
33 return 1
34 }
35
36 config_get gid "$s" 'group'
37 [ -n "$gid" ] || {
38 error "group is not set"
39 return 1
40 }
41 group_exists $gid || {
42 error "group '$gid' dos not exist"
43 return 1
44 }
45
46 config_get home "$s" 'home'
47 [ -n "$home" ] || {
48 home=$(grep "^${user}:" /etc/passwd | cut -d ':' -f 6)
49 fi
50 [ -d "$home" ] || {
51 error "home directory '$home' for user '$uid' dos not exist"
52 return 1
53 }
54
55 config_get options "$s" 'options'
56
57 HOME="$home" \
58 SERVICE_UID="$uid" \
59 SERVICE_GID="$gid" \
60 service_start /usr/bin/python2.6 /usr/bin/deluged --do-not-daemonize $options
61 }
62
63 stop_instance() {
64 local s="$1"
65
66 section_enabled "$s" || return 1
67
68 config_get uid "$s" 'user'
69 config_get gid "$s" 'group'
70
71 SERVICE_UID="$uid" \
72 SERVICE_GID="$gid" \
73 service_stop /usr/bin/python2.6
74 }
75
76 start()
77 {
78 config_load 'deluged'
79 config_foreach start_instance 'deluged'
80 }
81
82 stop()
83 {
84 config_load 'deluged'
85 config_foreach stop_instance 'deluged'
86 }