diff --git a/client/tool/compass.py b/client/tool/compass.py index 30ffb07ef..5ca97e151 100644 --- a/client/tool/compass.py +++ b/client/tool/compass.py @@ -11,12 +11,11 @@ import sys from task.codelintmodel import CodeLintModel -from util.subprocc import SubProcController -from util.envset import EnvSet from util.exceptions import AnalyzeTaskError from util.logutil import LogPrinter from node.app import settings from task.authcheck.check_license import __lu__ +from tool.util.compass import Compass as Tool logger = LogPrinter @@ -24,28 +23,11 @@ class Compass(CodeLintModel): def __init__(self, params): CodeLintModel.__init__(self, params) - self.tool_home = os.environ.get("COMPASS_HOME") - self.tool_name = self.__class__.__name__ def analyze(self, params): source_dir = params["source_dir"] self.relpos = len(source_dir) + 1 - task_dir = os.path.dirname(os.getcwd()) - os.environ["SOURCE_DIR"] = source_dir - request_file = os.path.abspath(os.path.join(task_dir, "task_request.json")) - os.environ["TASK_REQUEST"] = request_file - tool_cmd = self.get_cmd(["--TOKEN"]) - work_dir = os.getcwd() - - sp = SubProcController( - command=tool_cmd, - cwd=work_dir, - stdout_line_callback=self.print_log, - stderr_line_callback=self.print_log, - env=EnvSet().get_origin_env(), - ) - sp.wait() - result_path = os.path.join(work_dir, "result.json") + result_path = Tool(params).scan() if not os.path.exists(result_path): logger.info("没有生成结果文件") raise AnalyzeTaskError("工具执行错误") @@ -76,12 +58,6 @@ def _format_issue(self, lint_result): ) return issues - def get_cmd(self, args): - tool_path = os.path.join(self.tool_home, "bin", settings.PLATFORMS[sys.platform], self.tool_name) - if settings.PLATFORMS[sys.platform] == "windows": - tool_path = f"{tool_path}.exe" - return __lu__().format_cmd(tool_path, args) - tool = Compass diff --git a/client/tool/util/compass.py b/client/tool/util/compass.py new file mode 100644 index 000000000..28cf79dae --- /dev/null +++ b/client/tool/util/compass.py @@ -0,0 +1,57 @@ +# -*- encoding: utf-8 -*- +# Copyright (c) 2021-2022 THL A29 Limited +# +# This source code file is made available under MIT License +# See LICENSE for details +# ============================================================================== + + +import os +import sys + +from util.subprocc import SubProcController +from util.envset import EnvSet +from util.logutil import LogPrinter +from node.app import settings +from task.authcheck.check_license import __lu__ +from task.basic.common import subprocc_log + +logger = LogPrinter + + +class Compass(object): + def __init__(self, params): + self.tool_home = os.environ.get("COMPASS_HOME") + self.tool_name = self.__class__.__name__ + self.params = params + + def scan(self, source_dir=None, task_request=None, args=[]) -> str: + source_dir = source_dir if source_dir else self.params["source_dir"] + task_dir = os.path.dirname(os.getcwd()) + os.environ["SOURCE_DIR"] = source_dir + request_file = os.path.abspath(os.path.join(task_dir, "task_request.json")) + os.environ["TASK_REQUEST"] = task_request if task_request else request_file + tool_cmd = self.get_cmd(args) + work_dir = os.getcwd() + + sp = SubProcController( + command=tool_cmd, + cwd=work_dir, + stdout_line_callback=subprocc_log, + stderr_line_callback=subprocc_log, + env=EnvSet().get_origin_env(), + ) + sp.wait() + return os.path.join(work_dir, "result.json") + + def get_cmd(self, args): + tool_path = os.path.join(self.tool_home, "bin", settings.PLATFORMS[sys.platform], self.tool_name) + if settings.PLATFORMS[sys.platform] == "windows": + tool_path = f"{tool_path}.exe" + return __lu__().format_cmd(tool_path, args) + + +tool = Compass + +if __name__ == "__main__": + pass diff --git a/doc/en/quickStarted/enhanceDeploy.md b/doc/en/quickStarted/enhanceDeploy.md index 400b60a22..0507ef31c 100644 --- a/doc/en/quickStarted/enhanceDeploy.md +++ b/doc/en/quickStarted/enhanceDeploy.md @@ -62,7 +62,6 @@ LICENSE= - 收件邮箱: ``` v_cocohwang@tencent.com -anjingliu@tencent.com yalechen@tencent.com tommyzhang@tencent.com ``` diff --git a/doc/zh/quickStarted/enhanceDeploy.md b/doc/zh/quickStarted/enhanceDeploy.md index 400b60a22..0507ef31c 100644 --- a/doc/zh/quickStarted/enhanceDeploy.md +++ b/doc/zh/quickStarted/enhanceDeploy.md @@ -62,7 +62,6 @@ LICENSE= - 收件邮箱: ``` v_cocohwang@tencent.com -anjingliu@tencent.com yalechen@tencent.com tommyzhang@tencent.com ```