summaryrefslogtreecommitdiffstats
path: root/azure/aria/aria-extension-cloudify/examples/aws-hello-world/scripts/start.sh
blob: 7471cfc52a1405821479005af4166d5d0dd638a9 (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
#!/bin/bash

set -e

TEMP_DIR=/tmp
PYTHON_FILE_SERVER_ROOT="$TEMP_DIR/python-simple-http-webserver"
PID_FILE=server.pid
PORT=$(ctx node properties port)
URL="http://localhost:$PORT"

ctx logger info [ "Starting web server at: $PYTHON_FILE_SERVER_ROOT." ]

cd "$PYTHON_FILE_SERVER_ROOT"
nohup python -m SimpleHTTPServer "$PORT" > /dev/null 2>&1 &
echo $! > "$PID_FILE"

server_is_up() {
	if which wget >/dev/null; then
		if wget "$URL" >/dev/null; then
			return 0
		fi
	elif which curl >/dev/null; then
		if curl "$URL" >/dev/null; then
			return 0
		fi
	else
		ctx logger error [ "Both curl and wget were not found in path." ]
		exit 1
	fi
	return 1
}

ctx logger info [ "Waiting for web server to launch on port $PORT..." ]
STARTED=false
for i in $(seq 1 15)
do
	if server_is_up; then
		ctx logger info [ "Web server is up." ]
		STARTED=true
    	break
	else
		ctx logger info [ "Web server not up. waiting 1 second." ]
		sleep 1
	fi
done

if [ "$STARTED" = false ]; then
	ctx logger error [ "Web server did not start within 15 seconds." ]
	exit 1
fi