| 
									
										
										
										
											2020-06-20 20:03:06 +02:00
										 |  |  | import os | 
					
						
							|  |  |  | import multiprocessing | 
					
						
							|  |  |  | import logging | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-11 16:59:37 +02:00
										 |  |  | from WebHostLib import app as raw_app | 
					
						
							| 
									
										
										
										
											2020-06-20 20:03:06 +02:00
										 |  |  | from waitress import serve | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-11 16:59:37 +02:00
										 |  |  | from WebHostLib.models import db | 
					
						
							|  |  |  | from WebHostLib.autolauncher import autohost | 
					
						
							| 
									
										
										
										
											2020-06-20 20:03:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-10 17:42:22 +02:00
										 |  |  | configpath = "config.yaml" | 
					
						
							| 
									
										
										
										
											2020-06-20 20:03:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-27 18:17:36 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-10 17:42:22 +02:00
										 |  |  | def get_app(): | 
					
						
							|  |  |  |     app = raw_app | 
					
						
							| 
									
										
										
										
											2020-06-20 20:03:06 +02:00
										 |  |  |     if os.path.exists(configpath): | 
					
						
							|  |  |  |         import yaml | 
					
						
							|  |  |  |         with open(configpath) as c: | 
					
						
							|  |  |  |             app.config.update(yaml.safe_load(c)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         logging.info(f"Updated config from {configpath}") | 
					
						
							|  |  |  |     db.bind(**app.config["PONY"]) | 
					
						
							|  |  |  |     db.generate_mapping(create_tables=True) | 
					
						
							| 
									
										
										
										
											2020-07-10 17:42:22 +02:00
										 |  |  |     return app | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     multiprocessing.freeze_support() | 
					
						
							|  |  |  |     multiprocessing.set_start_method('spawn') | 
					
						
							|  |  |  |     logging.basicConfig(format='[%(asctime)s] %(message)s', level=logging.INFO) | 
					
						
							|  |  |  |     app = get_app() | 
					
						
							|  |  |  |     if app.config["SELFLAUNCH"]: | 
					
						
							| 
									
										
										
										
											2020-06-28 09:28:13 +02:00
										 |  |  |         autohost(app.config) | 
					
						
							| 
									
										
										
										
											2020-07-10 17:42:22 +02:00
										 |  |  |     if app.config["SELFHOST"]:  # using WSGI, you just want to run get_app() | 
					
						
							|  |  |  |         if app.config["DEBUG"]: | 
					
						
							|  |  |  |             autohost(app.config) | 
					
						
							|  |  |  |             app.run(debug=True, port=app.config["PORT"]) | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             serve(app, port=app.config["PORT"], threads=app.config["WAITRESS_THREADS"]) |