Welcome to mirror list, hosted at ThFree Co, Russian Federation.

server « script - github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6868db628cb68f6609619a353047ee102ad77275 (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
#!/bin/bash
#
# Start diaspora websocket and main services
#

realpath=$( ruby -e "puts File.expand_path(\"$0\")")
cd $( dirname $realpath)/..

[ -e config/server.sh ] && source config/server.sh

function init_public
# Create all dynamically generated files in public/ folder
{
    bundle exec thin \
         -d --pid log/thin.pid --address localhost --port $THIN_PORT \
         start
    for ((i = 0; i < 20; i += 1)) do
        sleep 2
        wget -q -O tmp/server.html http://localhost:$THIN_PORT && \
            rm tmp/server.html && break
    done
    bundle exec thin --pid log/thin.pid stop
    if [ -e tmp/server.html ]; then
        echo "Cannot get index.html from web server (aborted)" >&2
        return 2
    fi
    bundle exec jammit
}

# Scan for -p, find out what port thin is about to use.
args="$DEFAULT_THIN_ARGS $@"
prev_arg=''
for arg in $( echo $args | awk '{ for (i = 1; i <= NF; i++) print $i}')
do
    [ "$prev_arg" = '-p' ] && THIN_PORT="$arg"
    prev_arg="$arg"
done

# Is someone listening on the ports already? (ipv4 only test ?)
services=$( netstat -nl | grep '[^:]:'$THIN_PORT'[ \t]')
if [ -n "$services" ]; then
    echo "Error: thin port $THIN_PORT is already in use. Exiting" >&2
    echo "     $services"
    exit 64
fi

services=$( netstat -nl | grep '[^:]:'$SOCKET_PORT'[ \t]')
if [ -n "$services" ]; then
    echo "Error: websocket port $SOCKET_PORT is already in use. Exiting" >&2
    echo "     $services"
    exit 64
fi

# Check if Mongo is running
if  ! ps ax | grep -v grep | grep mongod >/dev/null
then
    echo "Error: Mongod not started. Exiting" >&2
    exit 64
fi

# Force AGPL
if [ -w public -a ! -e  public/source.tar.gz ]; then
    tar czf public/source.tar.gz  `git ls-tree -r master | awk '{print $4}'`
fi
if [ ! -e public/source.tar.gz ]; then
    echo "Error: Can't find, or even create, public/source.tar.gz. Exiting" >&2
    exit 65
fi

# Precache jammit assets
if [[ -w public  && ! -e public/stylesheets/application.css ]]; then
    if [ "$INIT_PUBLIC" != 'no' ]; then
        echo "Making first-time server initialization."
        init_public
    fi
fi
if [ ! -e 'public/assets/main.js.gz' ]; then
    echo 'Jammit precache error (now or at install)' >&2
    exit 66
fi


mkdir -p -v log/thin/
bundle exec ruby ./script/websocket_server.rb&
bundle exec magent start --log-path=log/ &
bundle exec thin start $args