# coding:utf-8

import os.path
import cherrypy

from app import chargen, log, template, manager
#----------------------------------------------------------
def main():
#----------------------------------------------------------
   
   # aktuelles Verzeichnis ermitteln, damit es in der Konfigurationsdatei als
   # Bezugspunkt verwendet werden kann   
   try:                                    # aktuelles Verzeichnis als absoluter Pfad
      currentDir_s = os.path.dirname(os.path.abspath(__file__))
   except:
      currentDir_s = os.path.dirname(os.path.abspath(sys.executable))
   cherrypy.Application.currentDir_s = currentDir_s

   configFileName_s = 'server.conf' # im aktuellen Verzeichnis   
   if os.path.exists(configFileName_s) == False:
      # Datei gibt es nicht
      configFileName_s = None
      #print("doof")
   #print("cool")
   # autoreload und timeout_Monitor hier abschalten
   # für cherrypy-Versionen >= "3.1.0" !
   print(configFileName_s)
   cherrypy.engine.autoreload.unsubscribe()
   cherrypy.engine.timeout_monitor.unsubscribe()
   cherrypy.config.update(configFileName_s)

   cherrypy.tree.mount(
      None, '/', configFileName_s
   )
   
   cherrypy.tree.mount(
      chargen.chargen_cl(), '/chargen', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}}
   )
   cherrypy.tree.mount(
      log.log_cl(), '/log', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}}
   )  
   cherrypy.tree.mount(
      manager.manager_cl(), '/manager', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}}
   )  
   cherrypy.tree.mount(
      template.Template_cl(), '/template', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()}}
   )     
  
   cherrypy.engine.start()
   cherrypy.engine.block() 

#----------------------------------------------------------
if __name__ == '__main__':
#----------------------------------------------------------
   main()