2016-12-18 15:54:37 +01:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
|
|
|
|
cd /c3nav/src
|
|
|
|
export DATA_DIR=/data/
|
|
|
|
NUM_WORKERS=10
|
|
|
|
|
|
|
|
if [ ! -d /data/logs ]; then
|
|
|
|
mkdir /data/logs;
|
|
|
|
fi
|
|
|
|
|
|
|
|
ls /data/map
|
|
|
|
|
|
|
|
if [ "$1" == "webworker" ]; then
|
2016-12-25 16:36:15 +01:00
|
|
|
until psql -h "postgres" -U "c3nav" -c '\l'; do
|
|
|
|
>&2 echo "Postgres is unavailable! waiting…"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
>&2 echo "Postgres is available! continuing…"
|
|
|
|
|
|
|
|
while ! nc redis 6379; do
|
|
|
|
>&2 echo "Redis is unavailable - sleeping"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
>&2 echo "Redis is available! continuing…"
|
|
|
|
|
2016-12-23 13:54:15 +01:00
|
|
|
python manage.py migrate --noinput
|
2016-12-23 14:30:42 +01:00
|
|
|
python manage.py loadmap -y
|
2016-12-23 15:13:11 +01:00
|
|
|
mkdir -p /static.dist
|
|
|
|
cp -r /c3nav/src/c3nav/static.dist/* /static.dist/
|
2016-12-23 13:54:15 +01:00
|
|
|
|
2016-12-18 15:54:37 +01:00
|
|
|
exec gunicorn c3nav.wsgi \
|
|
|
|
--name c3nav \
|
|
|
|
--workers $NUM_WORKERS \
|
|
|
|
--max-requests 1200 \
|
|
|
|
--max-requests-jitter 50 \
|
|
|
|
--log-level=info \
|
2016-12-23 14:14:28 +01:00
|
|
|
--bind [::]:8000
|
2016-12-18 15:54:37 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" == "taskworker" ]; then
|
2016-12-25 16:36:15 +01:00
|
|
|
until psql -h "postgres" -U "c3nav" -c '\l'; do
|
|
|
|
>&2 echo "Postgres is unavailable! waiting…"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
>&2 echo "Postgres is available! continuing…"
|
|
|
|
|
|
|
|
while ! nc redis 6379; do
|
|
|
|
>&2 echo "Redis is unavailable - sleeping"
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
>&2 echo "Redis is available! continuing…"
|
|
|
|
|
2016-12-18 15:54:37 +01:00
|
|
|
export C_FORCE_ROOT=True
|
|
|
|
exec celery -A c3nav worker -l info
|
|
|
|
fi
|
|
|
|
|
2016-12-23 13:54:15 +01:00
|
|
|
python manage.py migrate --noinput
|
|
|
|
|
2016-12-23 02:05:33 +01:00
|
|
|
if [ "$1" == "loadmap" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### loading map..."
|
2016-12-23 02:51:46 +01:00
|
|
|
exec python manage.py loadmap -y
|
2016-12-23 02:05:33 +01:00
|
|
|
fi
|
|
|
|
|
2016-12-25 11:55:13 +01:00
|
|
|
if [ "$1" == "dumpmap" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### dumping map..."
|
|
|
|
exec python manage.py dumpmap -y
|
|
|
|
fi
|
|
|
|
|
2016-12-23 12:13:44 +01:00
|
|
|
if [ "$1" == "check" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### checking map..."
|
|
|
|
exec python manage.py checkmap
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" == "load_check" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### loading map..."
|
|
|
|
python manage.py loadmap -y
|
|
|
|
|
2016-12-18 15:54:37 +01:00
|
|
|
echo ""
|
|
|
|
echo "### checking map..."
|
2016-12-23 02:51:46 +01:00
|
|
|
exec python manage.py checkmap
|
2016-12-18 15:54:37 +01:00
|
|
|
fi
|
|
|
|
|
2016-12-25 12:40:52 +01:00
|
|
|
if [ "$1" == "runlocal" ]; then
|
2016-12-18 15:54:37 +01:00
|
|
|
echo ""
|
|
|
|
echo "### starting editor..."
|
2016-12-23 02:51:46 +01:00
|
|
|
exec python manage.py runserver 0.0.0.0:8000
|
2016-12-18 15:54:37 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" == "build" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### rendering map..."
|
2016-12-23 02:51:46 +01:00
|
|
|
python manage.py rendermap
|
2016-12-18 15:54:37 +01:00
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### building graph..."
|
2016-12-23 11:05:02 +01:00
|
|
|
python manage.py buildgraph
|
2016-12-23 02:51:46 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" == "load_build" ]; then
|
|
|
|
echo ""
|
|
|
|
echo "### loading map..."
|
|
|
|
python manage.py loadmap -y
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### rendering map..."
|
|
|
|
python manage.py rendermap
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### building graph..."
|
2016-12-23 11:05:02 +01:00
|
|
|
python manage.py buildgraph
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### chowning /data/…"
|
2016-12-25 11:55:13 +01:00
|
|
|
USER_ID=${LOCAL_USER_ID:0}
|
2016-12-23 11:05:02 +01:00
|
|
|
exec chown -R $USER_ID $DATA_DIR
|
2016-12-18 15:54:37 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" == "all" ]; then
|
2016-12-23 02:05:33 +01:00
|
|
|
echo ""
|
|
|
|
echo "### loading map..."
|
2016-12-23 02:51:46 +01:00
|
|
|
python manage.py loadmap -y
|
2016-12-23 02:05:33 +01:00
|
|
|
|
2016-12-18 15:54:37 +01:00
|
|
|
echo ""
|
|
|
|
echo "### rendering map..."
|
2016-12-23 02:51:46 +01:00
|
|
|
python manage.py rendermap
|
2016-12-18 15:54:37 +01:00
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### building graph..."
|
2016-12-23 02:51:46 +01:00
|
|
|
python manage.py buildgraph
|
2016-12-18 15:54:37 +01:00
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "### running server..."
|
2016-12-23 02:51:46 +01:00
|
|
|
exec python manage.py runserver 0.0.0.0:8000
|
2016-12-18 15:54:37 +01:00
|
|
|
fi
|
|
|
|
|
2016-12-25 12:40:52 +01:00
|
|
|
echo "Specify argument: webworker|taskworker|loadmap|dumpmap|check|load_check|runlocal|build|load_build|all"
|
2016-12-18 15:54:37 +01:00
|
|
|
exit 1
|