63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
|
#! /usr/bin/env python3
|
||
|
import os, sys
|
||
|
from pathlib import Path
|
||
|
import core.plugin as plugin
|
||
|
from core.release_flow import ReleaseFlow
|
||
|
import thirdparty.py_trees as py_trees
|
||
|
import core.logger as logger
|
||
|
from database import *
|
||
|
log = logger.get_logger()
|
||
|
|
||
|
def load_config():
|
||
|
config_path = Path(__file__).parent.joinpath("configs", "customer.yaml")
|
||
|
if not config_path.exists():
|
||
|
config_path = config_path.parent.joinpath('customer_test.yaml')
|
||
|
if not config_path.exists():
|
||
|
log.error(f"customer config not found! {config_path}")
|
||
|
sys.exit(-1)
|
||
|
load_from_file(config_path)
|
||
|
#
|
||
|
check_config()
|
||
|
|
||
|
|
||
|
def check_config():
|
||
|
"""检查各种配置是否ok
|
||
|
1. 比如参数是否合法
|
||
|
2. 比如路径是否存在
|
||
|
3. 比如配置是否存在
|
||
|
"""
|
||
|
ReleaseOptions.check()
|
||
|
BlackListDefault.check()
|
||
|
BlackListInternal.check()
|
||
|
ProductIngoreList.check()
|
||
|
ChipIngoreList.check()
|
||
|
DirAlias.check()
|
||
|
|
||
|
def set_log_level(level:str):
|
||
|
"""设置日志级别
|
||
|
Args:
|
||
|
level (str): 日志级别
|
||
|
"""
|
||
|
map = {
|
||
|
'debug' : py_trees.logging.Level.DEBUG,
|
||
|
'info' : py_trees.logging.Level.INFO,
|
||
|
'warn' : py_trees.logging.Level.WARN,
|
||
|
'error' : py_trees.logging.Level.ERROR,
|
||
|
}
|
||
|
py_trees.logging.level = map.get(level, py_trees.logging.Level.INFO)
|
||
|
log.set_level(level)
|
||
|
|
||
|
def main():
|
||
|
args = sys.argv[1:]
|
||
|
ReleaseOptions.parse(args)
|
||
|
set_log_level(ReleaseOptions.log)
|
||
|
load_config()
|
||
|
# py_trees.logging.level = py_trees.logging.Level.DEBUG
|
||
|
plugins = plugin.PluginManager()
|
||
|
release_flow = ReleaseFlow()
|
||
|
release_flow.construct(plugins)
|
||
|
release_flow.run()
|
||
|
release_flow.shutdown()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|