-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.py
More file actions
37 lines (27 loc) · 1.52 KB
/
run.py
File metadata and controls
37 lines (27 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import argparse
import os
from dotenv import load_dotenv
import uvicorn
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Run the server in different modes.")
app_mode = parser.add_argument_group(title="App Mode", description="Run the server in different modes.")
app_mode.add_argument("--prod",action="store_true", help="Run the server in production mode.")
app_mode.add_argument("--test",action="store_true", help="Run the server in test mode.")
app_mode.add_argument("--dev",action="store_true", help="Run the server in development mode.")
db_type = parser.add_argument_group(title="Database Type", description="Run the server in different database type.")
db_type.add_argument("--db", help="Run the server in database type.",choices=["mysql","postgresql"], default="postgresql")
run_mode = parser.add_argument_group(title="Run Mode", description="Run the server in Async or Sync mode. Default is Async.")
run_mode.add_argument("--sync",action="store_true", help="Run the server in Sync mode.")
args = parser.parse_args()
if args.prod:
load_dotenv("setting/.env.prod")
elif args.test:
load_dotenv("setting/.env.test")
else:
load_dotenv("setting/.env.dev")
if args.sync:
os.environ["RUN_MODE"] = "SYNC"
else:
os.environ["RUN_MODE"] = "ASYNC"
os.environ["DB_TYPE"] = args.db
uvicorn.run("main:app", host="0.0.0.0" , port=int(os.getenv("PORT")) , reload=bool(os.getenv("RELOAD")) )