View difference between Paste ID: J9mdXURL and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | #!/bin/sh |
2 | ||
3 | ########################################################################## | |
4 | # pyLoad STARTUP and UPDATE SCRIPT for Synology NAS | |
5 | # AUTOSTART pyLoad as DAEMON - UPDATE PROGRAM FILES | |
6 | # <./S99pyload info> for more details and help | |
7 | ########################################################################## | |
8 | ||
9 | PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin | |
10 | SYNO=/usr/syno/bin | |
11 | DAEMON="python /opt/pyload/pyLoadCore.py --daemon" | |
12 | DAEMON_OPTS="--debug" | |
13 | QUIT="python /opt/pyload/pyLoadCore.py --quit" | |
14 | STATUS="python /opt/pyload/pyLoadCore.py --status" | |
15 | VERSION="python /opt/pyload/pyLoadCore.py --version" | |
16 | RELEASE_SRC="https://bitbucket.org/spoob/pyload/get/v0.4.8.zip" #edit v0.4.8.zip if a new release is out there! | |
17 | UPDATE_SRC="https://bitbucket.org/spoob/pyload/get/tip.zip" | |
18 | LOG="/volume1/public/.pyload/Logs/log.txt" #your path to the Logfile here! | |
19 | SCRN=/opt/etc/init.d/S99pyload | |
20 | ||
21 | ########################################################################## | |
22 | # COMMANDS START | |
23 | ########################################################################## | |
24 | ||
25 | start() | |
26 | { | |
27 | echo "`$VERSION`: try to start" | |
28 | echo "`$VERSION`:" `$DAEMON` | |
29 | sleep 2 | |
30 | if [ `$STATUS` -gt 3 ]; then | |
31 | echo "`$VERSION`: successfully started" | |
32 | else | |
33 | `$DAEMON` | |
34 | fi | |
35 | } | |
36 | ||
37 | ########################################################################## | |
38 | ||
39 | stop() | |
40 | { | |
41 | echo "`$VERSION`: try to kill myself" | |
42 | echo "`$QUIT`" | |
43 | } | |
44 | ||
45 | ########################################################################## | |
46 | ||
47 | setup() | |
48 | { | |
49 | echo "pyLoad: installing latest stable release - only run once!" | |
50 | cd /opt/; $SYNO/wget --no-check-certificate -q $RELEASE_SRC | |
51 | if [ $? -eq 0 ] ; then | |
52 | echo "pyLoad: successfully loaded latest stable release" | |
53 | else | |
54 | setup | |
55 | fi | |
56 | unzip -q spoob-pyload*.zip; rm spoob-pyload*.zip | |
57 | if [ $? -eq 0 ] ; then | |
58 | echo "pyLoad: archive unzipped and removed"; sleep 2 | |
59 | else | |
60 | setup | |
61 | fi | |
62 | mv spoob-pyload* pyload | |
63 | if [ $? -eq 0 ] ; then | |
64 | cd /opt/pyload/ | |
65 | python pyLoadCore.py -s | |
66 | else | |
67 | setup | |
68 | fi | |
69 | } | |
70 | ||
71 | ########################################################################## | |
72 | ||
73 | update() | |
74 | { | |
75 | # if [ `$STATUS` -gt 3 ]; then | |
76 | stop; sleep 5; | |
77 | # fi | |
78 | echo "UPDATE: updating `$VERSION`" | |
79 | echo "`date '+%d.%m.%Y %T'` INFO Updating `$VERSION`" >>$LOG | |
80 | cd /opt/ | |
81 | $SYNO/wget --no-check-certificate -q $UPDATE_SRC | |
82 | if [ $? -eq 0 ] ; then | |
83 | echo "UPDATE: successfully loaded dev version" | |
84 | else | |
85 | update | |
86 | fi | |
87 | unzip -q spoob-pyload*.zip; rm spoob-pyload*.zip | |
88 | if [ $? -eq 0 ] ; then | |
89 | echo "UPDATE: archive unzipped and removed"; sleep 2 | |
90 | else | |
91 | update | |
92 | fi | |
93 | $SYNO/rsync -qr /opt/spoob-pyload-*/ /opt/pyload/ | |
94 | if [ $? -eq 0 ] ; then | |
95 | echo "UPDATE: `$VERSION` successfully updated" | |
96 | else | |
97 | update | |
98 | fi | |
99 | rm -rf /opt/spoob-pyload-*/ | |
100 | echo "`date '+%d.%m.%Y %T'` INFO Update complete" >>$LOG | |
101 | start | |
102 | } | |
103 | ||
104 | ########################################################################## | |
105 | ||
106 | stable() | |
107 | { | |
108 | if [ `$STATUS` -gt 3 ]; then | |
109 | stop; sleep 5; | |
110 | fi | |
111 | echo "`$VERSION`: installing latest stable release" | |
112 | mkdir pyload_tip; cd /opt/pyload/; cp -r * /opt/pyload_tip/ | |
113 | cd /opt/ | |
114 | $SYNO/wget --no-check-certificate -q $RELEASE_SRC | |
115 | if [ $? -eq 0 ] ; then | |
116 | echo "`$VERSION`: successfully loaded latest stable release" | |
117 | else | |
118 | stable | |
119 | fi | |
120 | unzip -q spoob-pyload*.zip; rm spoob-pyload*.zip | |
121 | if [ $? -eq 0 ] ; then | |
122 | echo "`$VERSION`: archive unzipped and removed"; sleep 2 | |
123 | else | |
124 | stable | |
125 | fi | |
126 | $SYNO/rsync -qr /opt/spoob-pyload-*/ /opt/pyload/ | |
127 | if [ $? -eq 0 ] ; then | |
128 | echo "`$VERSION`: successfully installed" | |
129 | else | |
130 | stable | |
131 | fi | |
132 | rm -rf /opt/spoob-pyload-*/ | |
133 | start | |
134 | } | |
135 | ||
136 | ########################################################################## | |
137 | ||
138 | debug() | |
139 | { | |
140 | if [ `$STATUS` -gt 3 ]; then | |
141 | echo "`$VERSION`: already performing ... restart" | |
142 | stop | |
143 | sleep 5 | |
144 | debug | |
145 | else | |
146 | echo "`$VERSION`: try to start in debug mode + show output" | |
147 | echo "`$VERSION`:" `$DAEMON $DAEMON_OPTS` | |
148 | sleep 2 | |
149 | if [ `$STATUS` -gt 3 ]; then | |
150 | echo "`$VERSION`: successfully startet in debug mode" | |
151 | echo "" | |
152 | echo "***** ctrl + c to STOP OUTPUT and return *****" | |
153 | echo "" | |
154 | tail -f $LOG | |
155 | else | |
156 | `$DAEMON $DAEMON_OPTS` | |
157 | fi | |
158 | fi | |
159 | } | |
160 | ||
161 | ########################################################################## | |
162 | ||
163 | info() | |
164 | { | |
165 | if [ `$STATUS` -gt 3 ]; | |
166 | then | |
167 | echo "`$VERSION`: Process ID is `$STATUS`" | |
168 | echo "" | |
169 | echo -e '\e[33m####################################################################\e[0m' | |
170 | echo -e '\e[33m# OPERATIONS\e[0m' | |
171 | echo -e '\e[33m# start = start pyLoad (default)\e[0m' | |
172 | echo -e '\e[33m# stop = stop pyLoad\e[0m' | |
173 | echo -e '\e[33m# restart = stop and start pyLoad\e[0m' | |
174 | echo -e '\e[33m# setup = install pyLoad **only run at the first time**\e[0m' | |
175 | echo -e '\e[33m# stable = run the latest stable version\e[0m' | |
176 | echo -e '\e[33m# update = update program files\e[0m' | |
177 | echo -e '\e[33m# debug = enable debug mode + output\e[0m' | |
178 | echo -e '\e[33m# info = print out PID and status of pyLoad\e[0m' | |
179 | echo -e '\e[33m# show = print out Logfile while executing\e[0m' | |
180 | echo -e '\e[33m####################################################################\e[0m' | |
181 | ||
182 | else | |
183 | echo "`$VERSION`: process is NOT active" | |
184 | fi | |
185 | } | |
186 | ||
187 | ########################################################################## | |
188 | ||
189 | show() | |
190 | { | |
191 | start | |
192 | while [ `$STATUS` -gt 3 ]; do | |
193 | echo "" | |
194 | echo "***** ctrl + c to STOP OUTPUT and return *****" | |
195 | echo "" | |
196 | tail -f $LOG | |
197 | done | |
198 | } | |
199 | ||
200 | ########################################################################## | |
201 | ||
202 | case "$1" in | |
203 | start) | |
204 | start | |
205 | ;; | |
206 | stop) | |
207 | stop | |
208 | ;; | |
209 | restart) | |
210 | stop | |
211 | sleep 5 | |
212 | start | |
213 | ;; | |
214 | setup) | |
215 | setup | |
216 | ;; | |
217 | stable) | |
218 | stable | |
219 | ;; | |
220 | update) | |
221 | update | |
222 | ;; | |
223 | debug) | |
224 | debug | |
225 | ;; | |
226 | info) | |
227 | info | |
228 | ;; | |
229 | show) | |
230 | show | |
231 | ;; | |
232 | *) | |
233 | echo "Usage: $SCRN (start|stop|restart|setup|stable|update|debug|info|show)" >&2 | |
234 | exit 1 | |
235 | ;; | |
236 | esac | |
237 | ||
238 | ||
239 | exit 0 | |
240 | ########################################################################## | |
241 | # End of script | |
242 | ########################################################################## |