SHARE
TWEET

pyLoad Startup Script III

Binomico Apr 12th, 2011 6,763 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. ##########################################################################
RAW Paste Data
Top