summaryrefslogtreecommitdiff
path: root/start_qvisqve
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-02-09 13:53:33 +0200
committerLars Wirzenius <liw@liw.fi>2018-02-09 13:56:43 +0200
commitf1f291b270b96fe1511286cb807f02c9741b0d71 (patch)
tree509a7f697685e9282fbdc6838fb037ff6cb5e4dd /start_qvisqve
parent3b208da0461f5a129fcbc527fbfdd9ed8309d077 (diff)
downloadqvisqve-f1f291b270b96fe1511286cb807f02c9741b0d71.tar.gz
Rename: to Qvisqve
Diffstat (limited to 'start_qvisqve')
-rwxr-xr-xstart_qvisqve86
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