chrono/scripts/uwsgi.sh

60 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
set -e
exec 3>&1
function silent() {
LOG=`mktemp`
"$@" >$LOG 2>&1 || (tail $LOG; rm $LOG; exit 1)
rm $LOG
}
mkdir -p $TOX_WORK_DIR/spooler
createdb chrono-runserver >/dev/null 2>&1 || true
silent ./manage.py migrate
silent ./manage.py loaddata scripts/fixtures/admin.json
set -m
UWSGI_INI=$TOX_WORK_DIR/uwsgi.ini
cat >$UWSGI_INI <<EOF
[uwsgi]
plugin = python3
single-interpreter = true
pymodule-alias = testapp=scripts/testapp.py
module = chrono.wsgi:application
need-app = true
plugin = logfile
logger = file:$TOX_WORK_DIR/uwsgi.log
req-logger = file:/dev/fd/3
logformat-strftime = true
log-date = %%Y-%%m-%%d %%a %%H:%%M:%%S
log-format = %(ftime) INFO %(method) %(uri) (%(rsize) bytes, %(msecs) msecs, status %(status))
virtualenv = $TOX_ENV_DIR
auto-procname = true
procname-prefix-spaced = chrono
master = true
enable-threads = true
processes = 3
pidfile = $TOX_WORK_DIR/uwsgi.pid
http-socket = 127.0.0.1:9040
spooler-python-import = chrono.utils.spooler
spooler = $TOX_WORK_DIR/spooler
python-autoreload = 1
EOF
echo
silent uwsgi $UWSGI_INI &
echo - uwsgi.ini: $UWSGI_INI
echo - pidfile: $TOX_WORK_DIR/uwsgi.pid
echo - uwsgi.log: $TOX_WORK_DIR/uwsgi.log
echo - spooler: $TOX_WORK_DIR/spooler
echo
echo
echo " Open http://127.0.0.1:9040/ with login/password: admin / admin"
fg >/dev/null