~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerheadd

  • Committer: Martin Albisetti
  • Date: 2009-05-27 12:52:49 UTC
  • mto: (352.6.11 serve-config)
  • mto: This revision was merged to the branch mainline in revision 364.
  • Revision ID: martin.albisetti@canonical.com-20090527125249-b9o7ajvls7jvpjf1
Less windows-ism

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/sh
2
2
### BEGIN INIT INFO
3
 
# Required-Start:               $local_fs $remote_fs $network
4
 
# Default-Start:                3 5
5
 
# Default-Stop:                 0 1 2 6
6
 
# Short-Description:            Loggerhead
7
 
# Description:                  Manage Loggerhead (a web viewer for projects in bazaar)
 
3
# Required-Start:       $local_fs $remote_fs $network
 
4
# Default-Start:        3 5
 
5
# Default-Stop:         0 1 2 6
 
6
# Short-Description:    Loggerhead
 
7
# Description:          Manage Loggerhead (a web viewer for projects in bazaar)
8
8
### END INIT INFO
9
9
 
10
 
# Configure this please: #
11
 
LOGGERHEAD_PATH=/opt/loggerhead
 
10
 
 
11
#
 
12
# Configure this please:
 
13
# (Please stop loggerhead before changing the configuration, otherwise this
 
14
#   script might not be able to kill loggerhead)
 
15
#
 
16
 
 
17
LHUSER=loggerhead
 
18
 
 
19
if [ `whoami` = "$LHUSER" ]; then                                                                                   
 
20
    SUDO=""
 
21
else                                                                                                                
 
22
    SUDO="sudo -H -u $LHUSER"
 
23
fi
 
24
 
 
25
# If serve-branches is not in your path, you will need to specify the full path:
 
26
SERVE_BRANCHES_CMD=serve-branches
 
27
 
12
28
LOG_FOLDER=/var/log/loggerhead
13
29
LOG_FILE=$LOG_FOLDER/loggerheadd.log
14
 
PREFIX=/loggerhead
 
30
URL_PREFIX=/loggerhead
15
31
PORT=8080
16
32
 
 
33
#please specify the base directory to serve:
 
34
BZRROOT=/bzrroot
 
35
 
17
36
# You can add additional options to serve-branches here:
18
 
START_CMD="$LOGGERHEAD_PATH/serve-branches --prefix=$PREFIX --log-folder=$LOG_FOLDER --port=$PORT /var/lib/gforge/bzrroot/"
 
37
START_CMD="$SERVE_BRANCHES_CMD --prefix=$URL_PREFIX --log-folder=$LOG_FOLDER --port=$PORT $BZRROOT"
 
38
 
19
39
 
20
40
#
21
41
# main part
22
42
#
 
43
 
 
44
loggerhead_process(){
 
45
    $SUDO pgrep -fl "$START_CMD"
 
46
}
 
47
 
 
48
loggerhead_status(){
 
49
    proccess=`loggerhead_process`
 
50
    #echo "$proccess"
 
51
    listening=`netstat -nl |grep -e ":$PORT "`
 
52
    #echo "$listening"
 
53
    if [ -z "$proccess" ]; then
 
54
        echo "Loggerhead is *not* running."
 
55
    else
 
56
        echo "Loggerhead is running."
 
57
        if [ -z "$listening" ]; then
 
58
            echo "This server is *not* listening on port $PORT."
 
59
        else
 
60
            echo "This server is listening on port $PORT."
 
61
        fi
 
62
    fi
 
63
}
 
64
 
 
65
start_loggerhead(){
 
66
    echo "Starting loggerhead.   (See $LOG_FOLDER for details.)"
 
67
 
 
68
    # make sure the log folder is created
 
69
    if [ ! -d $LOG_FOLDER ]
 
70
    then
 
71
        $SUDO mkdir -p $LOG_FOLDER
 
72
    fi
 
73
    echo "" > $LOG_FILE
 
74
    $SUDO python $START_CMD > $LOG_FILE 2>&1 &
 
75
 
 
76
    #wait a little while of some logging to appear
 
77
    log=""
 
78
    for i in $(seq 1 3 30); do
 
79
        log=`cat $LOG_FILE`
 
80
        if [ -n "$log" ]; then
 
81
            break
 
82
        fi
 
83
        sleep 0.3
 
84
    done
 
85
    tail $LOG_FILE
 
86
    loggerhead_status
 
87
}
 
88
 
 
89
stop_loggerhead(){
 
90
    echo "Stopping loggerhead."
 
91
    $SUDO pkill -f "$START_CMD"
 
92
    loggerhead_status
 
93
}
 
94
 
23
95
case "$1" in
24
96
    start)
25
 
        python $START_CMD > $LOG_FILE 2>&1 &
26
 
    echo "Started loggerhead.   (See $LOG_FOLDER for details.)"
 
97
        start_loggerhead
27
98
    ;;
28
99
    stop)
29
 
    pkill -f "$START_CMD"
 
100
        stop_loggerhead
30
101
    ;;
31
102
    status)
32
 
        proccess=`pgrep -fl "$START_CMD"`
33
 
        echo "$proccess"
34
 
        netstat -anp |grep -e ":$PORT"
35
 
        if [ -z "$proccess" ]; then
36
 
        echo "Loggerhead is not running."
37
 
    else
38
 
        echo "Loggerhead is running."
39
 
        fi
40
 
        ;;
41
 
 
 
103
        loggerhead_status
 
104
    ;;
 
105
    restart)
 
106
        stop_loggerhead
 
107
        start_loggerhead
 
108
    ;;
42
109
    *)
43
 
        echo "Usage: loggerheadd { start | stop | status }"
44
 
    exit 1
 
110
        echo "Usage: loggerheadd { start | stop | status | restart }"
 
111
        exit 1
45
112
esac