diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-02-09 13:53:33 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-02-09 13:56:43 +0200 |
commit | f1f291b270b96fe1511286cb807f02c9741b0d71 (patch) | |
tree | 509a7f697685e9282fbdc6838fb037ff6cb5e4dd /start_qvisqve | |
parent | 3b208da0461f5a129fcbc527fbfdd9ed8309d077 (diff) | |
download | qvisqve-f1f291b270b96fe1511286cb807f02c9741b0d71.tar.gz |
Rename: to Qvisqve
Diffstat (limited to 'start_qvisqve')
-rwxr-xr-x | start_qvisqve | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/start_qvisqve b/start_qvisqve new file mode 100755 index 0000000..fb50dc5 --- /dev/null +++ b/start_qvisqve @@ -0,0 +1,86 @@ +#!/bin/bash +# Copyright (C) 2017 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +set -eu + + +get() +{ + set -eu + python3 -c ' +import yaml, sys +filename, varname = sys.argv[1:] +config = yaml.safe_load(open(filename)) +print(config.get(varname, "")) +' "$@" +} + + +run_bottle() +{ + set -eu + local port="$(get "$config" gunicorn-port)" + export QVISQVE_CONFIG="$1" + python3 -c "import qvisqve; qvisqve.create_app().run(host='127.0.0.1', port=$port)" +} + + + +run_gunicorn() +{ + set -eu + local config="$1" + local gunicorn="$(get "$config" gunicorn)" + local log_file="$(get "$config" gunicorn-log)" + local pid_file="$(get "$config" gunicorn-pid-file)" + local port="$(get "$config" gunicorn-port)" + + if [ "${pid_file:=no}" = no ] + then + pid_opt="" + else + pid_opt="-p $pid_file" + fi + + opts=" + --bind 127.0.0.1:$port \ + -w1 \ + --log-file $log_file \ + $pid_opt \ + --log-level debug \ + " + + if [ "$gunicorn" = background ] + then + opts="$opts --daemon" + fi + + export QVISQVE_CONFIG="$config" + gunicorn3 $opts qvisqve.backend:app +} + + +config="$1" +gunicorn="$(get "$config" gunicorn)" +case "$gunicorn" in + no) + run_bottle "$config" + ;; + yes|True|background) + run_gunicorn "$config" + ;; +esac |