aboutsummaryrefslogtreecommitdiff
path: root/scripts/init/ddwrt/S801gogs
blob: de113c536e21e160dc206f74efd7c0c052c40fa7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/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

PIDFILE="/opt/var/run/gogs.pid"
USER="gogs"
GOROOT="/opt/bin/go"
GOPATH="/opt/go"

ENABLED=yes
PROC="gogs"
DESC=$PROC
PREARGS="/opt/bin/sudo -u $USER /opt/bin/daemonize"
GOGSBIN="$GOPATH/src/github.com/gogs/gogs/gogs"
ARGS="web"

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";

case "$1" in
start)
        # start gogs web
        if [ -f "$PIDFILE" ]
	then
                echo "$DESC is already running ...`pidof $PROC`"
        else
                echo -e -n "$ansi_white Starting $DESC... $ansi_std"
                export GOROOT=$GOROOT
                export GOPATH=$GOPATH
                export PATH=$PATH:$GOROOT/bin

                $PREARGS $GOGSBIN $ARGS > /dev/null 2>&1 &

                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."
                        echo `pidof $PROC` > "$PIDFILE"
                        return 0
                fi
        fi
        ;;
stop)
        echo -e -n "$ansi_white Shutting down $PROC... $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
        ;;

kill)
            echo -e -n "$ansi_white Killing $PROC... $ansi_std"
            killall -9 $PROC 2>/dev/null
        ;;
status | check)
    echo -e -n "$ansi_white Checking $DESC... "
    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

    ;;
*)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        ;;
esac