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
##########################################################################