summaryrefslogtreecommitdiff
path: root/docker-run.sh
blob: c6746c3305d5d0e30234ee7c98befcdd0d4b6773 (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
#!/bin/bash
#
# Copyright (C) Markus Witt
#
# SPDX-License-Identifier: CC0-1.0
set -eu

WAIT_DB_HOST=${TRAVELYNX_DB_HOST}
WAIT_DB_PORT=5432

check_config() {
	if [ ! -f travelynx.conf ]
	then
		echo "The configuration file is missing"
		exit 1
	fi	
}

wait_for_db() {
	set +e
	for i in $(seq 1 ${WAIT_DB_TIMEOUT:-5})
	do
		(echo >/dev/tcp/${WAIT_DB_HOST}/${WAIT_DB_PORT}) &>/dev/null
		if [ $? -eq 0 ]; then
		    break
		else
			echo "Can't reach DB @ ${WAIT_DB_HOST}:${WAIT_DB_PORT}"
		fi
		sleep 1
	done
	set -e
}

run_app() {
	if [ \
		"${TRAVELYNX_MAIL_DISABLE:-0}" -eq 0 \
		-a "${TRAVELYNX_MAIL_HOST:-unset}" != "unset" \
	]
	then
		export EMAIL_SENDER_TRANSPORT=SMTP
		export EMAIL_SENDER_TRANSPORT_HOST=${TRAVELYNX_MAIL_HOST}
		export EMAIL_SENDER_TRANSPORT_PORT=${TRAVELYNX_MAIL_PORT:-25}
	fi

	perl index.pl database migrate

	exec /usr/local/bin/hypnotoad -f index.pl
}

run_cron() {
	exec perl index.pl worker
}

check_config
wait_for_db

if [ "${CRON:-0}" -ne "0" ]
then
	run_cron
fi

run_app