From 19338ba8d5d37b11b901ab577bd6431836541d93 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Fri, 13 Nov 2020 15:01:53 +0100
Subject: [PATCH] Add daemon loop

---
 .env.tpl              |  4 ++++
 web/Dockerfile        |  1 -
 web/app/models.py     |  2 +-
 web/boot.sh           | 29 +++++++++++++++++------------
 web/nopaque-daemon.sh |  7 +++++++
 5 files changed, 29 insertions(+), 14 deletions(-)
 create mode 100755 web/nopaque-daemon.sh

diff --git a/.env.tpl b/.env.tpl
index e7c2cea7..ee8a68af 100644
--- a/.env.tpl
+++ b/.env.tpl
@@ -111,6 +111,10 @@ NOPAQUE_ADMIN=
 #       Swarm nodes
 # NOPAQUE_DATA_DIR=
 
+# CHOOSE ONE: False, True
+# DEFAULT: False
+# NOPAQUE_DAEMON_ENABLED=
+
 # DEFAULT: 0.0.0.0
 # NOPAQUE_HOST=
 
diff --git a/web/Dockerfile b/web/Dockerfile
index 3681b701..d5de0392 100644
--- a/web/Dockerfile
+++ b/web/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
  && apt-get install --no-install-recommends --yes \
       build-essential \
       libpq-dev \
-      wait-for-it \
  && rm -r /var/lib/apt/lists/*
 
 
diff --git a/web/app/models.py b/web/app/models.py
index fc12610d..e912bf17 100644
--- a/web/app/models.py
+++ b/web/app/models.py
@@ -35,7 +35,7 @@ class Role(db.Model):
     # Fields
     default = db.Column(db.Boolean, default=False, index=True)
     name = db.Column(db.String(64), unique=True)
-    permissions = db.Column(db.BigInteger)
+    permissions = db.Column(db.Integer)
     # Relationships
     users = db.relationship('User', backref='role', lazy='dynamic')
 
diff --git a/web/boot.sh b/web/boot.sh
index 9c87cfd1..d6536518 100755
--- a/web/boot.sh
+++ b/web/boot.sh
@@ -1,21 +1,26 @@
 #!/bin/bash
-source venv/bin/activate
 
-while true; do
-    flask deploy
-    if [[ "$?" == "0" ]]; then
-        break
-    fi
-    echo Deploy command failed, retrying in 5 secs...
-    sleep 5
-done
+if [[ "${NOPAQUE_DAEMON_ENABLED}" == "True" ]]; then
+    echo "Starting nopaque daemon..."
+    ./nopaque-daemon.sh &
+fi
+
+source venv/bin/activate
 
-if [[ "$#" -eq 0 ]]; then
+if [[ "${#}" -eq 0 ]]; then
+    while true; do
+        flask deploy
+        if [[ "${?}" == "0" ]]; then
+            break
+        fi
+        echo Deploy command failed, retrying in 5 secs...
+        sleep 5
+    done
     python nopaque.py
-elif [[ "$1" == "flask" ]]; then
+elif [[ "${1}" == "flask" ]]; then
     exec ${@:1}
 else
-    echo "$0 [COMMAND]"
+    echo "${0} [COMMAND]"
     echo ""
     echo "nopaque startup script"
     echo ""
diff --git a/web/nopaque-daemon.sh b/web/nopaque-daemon.sh
new file mode 100755
index 00000000..7a903646
--- /dev/null
+++ b/web/nopaque-daemon.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+source venv/bin/activate
+
+while true; do
+    flask tasks
+    sleep 10
+done
-- 
GitLab