From a987e4ae7d5536de2cfdd167efd69296706e714f Mon Sep 17 00:00:00 2001
From: robban64 <carl@schonfelder.se>
Date: Thu, 27 May 2021 12:34:53 +0200
Subject: [PATCH] fix: populate is now done in main.py with argument populate

---
 .vscode/tasks.json |  2 +-
 server/main.py     | 49 ++++++++++++++++++++++++++++------------------
 server/populate.py |  2 ++
 3 files changed, 33 insertions(+), 20 deletions(-)

diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 45b33116..57bca089 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -66,7 +66,7 @@
       "label": "Populate database",
       "type": "shell",
       "group": "build",
-      "command": "env/Scripts/python populate.py",
+      "command": "env/Scripts/python main.py populate dev lite",
       "problemMatcher": [],
       "options": {
         "cwd": "${workspaceFolder}/server"
diff --git a/server/main.py b/server/main.py
index 589a2845..43495dcd 100644
--- a/server/main.py
+++ b/server/main.py
@@ -1,33 +1,44 @@
 import sys
 
-from app import create_app
+from app import create_app, db
+from populate import create_default_items
 
 """
 Action-arg1:    server(default), populate
-Mode-arg2:      dev(default), prod, test
+Mode-arg2:      dev(default), prod
 Database-arg3:  lite(default), postgre
 """
 
+
+def start_server(mode, database):
+    print(f"Starting server in {mode} mode with database {database}...")
+    app, sio = create_app(mode, database)
+    sio.run(app)
+
+
+def populate_server(mode, database):
+    print(f"Populating server in {mode} mode with database {database}...")
+    app, _ = create_app(mode, database)
+
+    with app.app_context():
+        db.drop_all()
+        db.create_all()
+        create_default_items()
+
+    print("Task populate done")
+
+
 if __name__ == "__main__":
     argv = sys.argv
 
-    # action = argv[1] if len(argv) > 1 else "server"
-    mode = argv[1] if len(argv) > 1 else "dev"
-    # database = argv[3] if len(argv) > 3 else "lite"
-
-    # if mode == "prod":
-    # database = "postgre"
+    action = argv[1] if len(argv) > 1 else "server"
+    mode = argv[2] if len(argv) > 2 else "dev"
+    database = argv[3] if len(argv) > 3 else "lite"
 
-    if mode == "dev" or mode == "test":
-        database = argv[2] if len(argv) > 2 else "lite"
-    elif mode == "prod":
+    if mode == "prod":
         database = "postgre"
-    else:
-        print("Invalid args")
-        print("Dev args: no args, 'dev lite' or 'dev postgre'")
-        print("Prod args: 'prod'\n")
-        sys.exit(-1)
 
-    print(f"Starting server in {mode} mode with database {database}...")
-    app, sio = create_app(mode, database)
-    sio.run(app)
+    if action == "server":
+        start_server(mode, database)
+    elif action == "populate":
+        populate_server(mode, database)
diff --git a/server/populate.py b/server/populate.py
index 714d8ae3..87160134 100644
--- a/server/populate.py
+++ b/server/populate.py
@@ -144,6 +144,7 @@ def create_default_items():
     # dbc.add.question_answer("ett svar som ger 3p", 3, 1, 3)
 
 
+"""
 if __name__ == "__main__":
     argv = sys.argv
 
@@ -169,3 +170,4 @@ if __name__ == "__main__":
         create_default_items()
 
     print("Task populating done")
+"""
-- 
GitLab