py.lib

John Y. 2018-05-30 Child:f5082aa9fe60

4:cb88c7d80d6f Go to Latest

py.lib/pgAdmin4_server.py

pgAdmin4_server.py

History
awgur@4 1 # coding: utf-8
awgur@4 2 # devel.a0fs.net: pgadmin.selfServerAsync - v0.1 by awgur $
awgur@4 3
awgur@4 4 ##########################################################################
awgur@4 5 #
awgur@4 6 # pgAdmin 4 - PostgreSQL Tools
awgur@4 7 #
awgur@4 8 # Copyright (C) 2013 - 2018, The pgAdmin Development Team
awgur@4 9 # This software is released under the PostgreSQL Licence
awgur@4 10 #
awgur@4 11 ##########################################################################
awgur@4 12
awgur@4 13 from gevent import monkey; monkey.patch_all()
awgur@4 14 from gevent.pywsgi import WSGIServer
awgur@4 15 import os
awgur@4 16 import sys
awgur@4 17 import logging
awgur@4 18 from logging.handlers import SysLogHandler
awgur@4 19
awgur@4 20
awgur@4 21 def prepLogger():
awgur@4 22 _format = 'lo.ad.pgadmin[%(process)d]: %(message)s'
awgur@4 23 _logHandler = SysLogHandler(address='/dev/log', facility='user')
awgur@4 24 _logHandler.setFormatter(logging.Formatter(_format))
awgur@4 25 logging.basicConfig(level=logging.INFO)
awgur@4 26 _log = logging.getLogger()
awgur@4 27 _log.handlers = [_logHandler,]
awgur@4 28
awgur@4 29 root = os.path.dirname(os.path.realpath(__file__))
awgur@4 30 if sys.path[0] != root:
awgur@4 31 sys.path.insert(0, root)
awgur@4 32
awgur@4 33 if sys.version_info[0] >= 3:
awgur@4 34 import builtins
awgur@4 35 else:
awgur@4 36 import __builtin__ as builtins
awgur@4 37
awgur@4 38 # Ensure the global server mode is set.
awgur@4 39 builtins.SERVER_MODE = True
awgur@4 40
awgur@4 41 import config
awgur@4 42
awgur@4 43 # When running it as a WSGI application, directory for the configuration file
awgur@4 44 # must present.
awgur@4 45 if not os.path.exists(os.path.dirname(config.SQLITE_PATH)):
awgur@4 46 raise Exception(
awgur@4 47 """
awgur@4 48 Required configuration file is not present!
awgur@4 49 Please run setup.py first!"""
awgur@4 50 )
awgur@4 51
awgur@4 52 from pgAdmin4 import app as application
awgur@4 53 prepLogger()
awgur@4 54 log = logging.getLogger()
awgur@4 55
awgur@4 56 WSGIServer(('0.0.0.0', 44000), application, log=log, error_log=log).serve_forever()