import os, sys import argparse from appPublic.log import MyLogger, info, debug, warning from appPublic.folderUtils import ProgramPath from appPublic.jsonConfig import getConfig from appPublic.registerfunction import RegisterFunction from ahserver.configuredServer import ConfiguredServer from ahserver.serverenv import ServerEnv from rbac.init import load_rbac from appbase.init import load_appbase from basellm.init import load_basellm from filemgr.init import load_filemgr from uapi.init import load_uapi from global_func import set_globalvariable from pf_pay.init import load_pf_pay from platformbiz.init import load_platformbiz from accounting.init import load_accounting from ext import * from rf import * __version__ = '0.0.1' if __name__ == '__main__': parser = argparse.ArgumentParser(prog="Sage") parser.add_argument('-w', '--workdir') parser.add_argument('-p', '--port') args = parser.parse_args() workdir = args.workdir or os.getcwd() p = ProgramPath() config = getConfig(workdir, NS={'workdir':workdir, 'ProgramPath':p}) if config.logger: logger = MyLogger(config.logger.name or 'sage', levelname=config.logger.levelname or 'debug', logfile=config.logger.logfile or None) else: logger = MyLogger('sage', levelname='debug') info(f'====================sage version={__version__}') # server = ConfiguredServer(auth_klass=MyAuthAPI, workdir=workdir) server = ConfiguredServer(workdir=workdir) rf = RegisterFunction() set_globalvariable() load_appbase() load_rbac() load_accounting() load_pf_pay() load_platformbiz() load_basellm() load_filemgr() load_uapi() port = args.port or config.website.port or 8080 port = int(port) server.run(port=port)