| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- #!/bin/sh
 
- ### Custom user script for gogs
 
- ### First param is:
 
- ###  "start" (call at start entware),
 
- ###  "stop" (call before stop entware),
 
- ###
 
- ### Note the additional requirements for gogs on ddwrt: shadow user, group, sudo, daemonize
 
- # pid so we know we're running
 
- PIDFILE="/opt/var/run/gogs.pid"
 
- # will need shadow users and groups, sorry - this adds complexity.
 
- USER="gogs"
 
- # go paths
 
- GOROOT="/opt/bin/go"
 
- GOPATH="/opt/go"
 
- # gogs binary location
 
- GOGSBIN="$GOPATH/src/github.com/gogs/gogs/gogs"
 
- # in case you need to see logs for this daemonized gog
 
- DAEMONIZE_LOG="/tmp/gogs.daemon.log"
 
- # SQL can start up slower than normal on DDWRT, use this string to validate if it's up (/opt/bin/netstat -ln |grep "THE STRING YOU SET FOR BELOW VARIABLE"
 
- SQL_STRING=" 127.0.0.1:3306 "
 
- # items for start
 
- PROC="gogs"
 
- DESC=$PROC
 
- PREARGS="/opt/bin/daemonize -v -o $DAEMONIZE_LOG -u $USER -c $GOPATH -p $PIDFILE -E GOROOT=\"$GOROOT\" -E GOPATH=\"$GOPATH\""
 
- ARGS="web"
 
- # legacy RC stuff
 
- ENABLED=yes
 
- # from rc.func
 
- ansi_red="\033[1;31m";ansi_white="\033[1;37m";ansi_green="\033[1;32m";ansi_yellow="\033[1;33m";ansi_blue="\033[1;34m";
 
- ansi_bell="\007";ansi_blink="\033[5m";ansi_std="\033[m";ansi_rev="\033[7m";ansi_ul="\033[4m";
 
- start() {
 
-         # check if we have our user.
 
-         grep -q "^$USER" /etc/passwd || {
 
-              echo -e -n "$ansi_red User $user doesn't exist in /etc/passwd. Exiting.\n$ansi_std"
 
-              exit 1
 
-         }
 
-         if [ -f "$DAEMONIZE_LOG" ]; then rm $DAEMONIZE_LOG; fi
 
-         echo -e -n "$ansi_white Starting $DESC... $ansi_std"
 
-         export GOROOT=$GOROOT
 
-         export GOPATH=$GOPATH
 
-         export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin:/opt/sbin:/opt/bin:/opt/usr/sbin:/ opt/usr/bin:$GOROOT/bin:$GOPATH
 
-         # Wait for SQL
 
-         for n in `seq 10`;
 
-         do
 
-           /opt/bin/netstat -ln |grep -v proc |grep -q "$SQL_STRING" && $PREARGS $GOGSBIN $ARGS > /dev/null && break
 
-           sleep 1
 
-         done
 
-         COUNTER=0
 
-         LIMIT=10
 
-         while [ -z "`pidof $PROC`" -a "$COUNTER" -le "$LIMIT" ]; do
 
-                 sleep 1;
 
-                 COUNTER=`expr $COUNTER + 1`
 
-         done
 
-         if [ -z "`pidof $PROC`" ]
 
-         then
 
-                 echo -e "            $ansi_red failed. $ansi_std"
 
-                 logger "Failed to start $DESC from $CALLER."
 
-                 return 255
 
-         else
 
-                 echo -e "            $ansi_green done. $ansi_std"
 
-                 logger "Started $DESC from $CALLER."
 
-                 return 0
 
-         fi
 
- }
 
- stop() {
 
-         echo -e -n "$ansi_white Shutting down $PROC...\n $ansi_std"
 
-         killall $PROC 2>/dev/null
 
-         if [ -f "$PIDFILE" ]
 
-         then
 
-                 rm "$PIDFILE"
 
-         fi
 
-         COUNTER=0
 
-         LIMIT=10
 
-         while [ -n "`pidof $PROC`" -a "$COUNTER" -le "$LIMIT" ]; do
 
-                 sleep 1;
 
-                 COUNTER=`expr $COUNTER + 1`
 
-         done
 
- }
 
- status() {
 
-     echo -e -n "$ansi_white Checking $DESC... \n"
 
-     if [ -n "`pidof $PROC`" ]
 
-     then
 
-         echo -e "            $ansi_green alive. $ansi_std";
 
-         return 0
 
-     else
 
-         echo -e "            $ansi_red dead. $ansi_std";
 
-         return 1
 
-     fi
 
- }
 
- die() {
 
-      echo -e -n "$ansi_white Killing $PROC... $ansi_std"
 
-      killall -9 $PROC 2>/dev/null
 
- }
 
- case "$1" in
 
- start)
 
-   start
 
-   ;;
 
- stop)
 
-   stop
 
-   ;;
 
- kill)
 
-   die
 
-   ;;
 
- status | check)
 
-   status
 
-   ;;
 
- restart)
 
-   stop
 
-   start
 
-   ;;
 
- *)
 
-    echo "Usage: $0 {start|stop|kill|restart}"
 
-    exit 1
 
-    ;;
 
- esac
 
 
  |