From 08fcba4b2cf3271bb9ce8ddb422cd7720654f4cb Mon Sep 17 00:00:00 2001 From: Nuvole Date: Wed, 23 Oct 2024 22:45:25 +0800 Subject: [PATCH] feat: combine dummy & result-staus --- joj3_config_generator/convert.py | 15 ++------------- joj3_config_generator/lib/task.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/joj3_config_generator/convert.py b/joj3_config_generator/convert.py index 848ad53..4db2a23 100644 --- a/joj3_config_generator/convert.py +++ b/joj3_config_generator/convert.py @@ -1,5 +1,5 @@ from joj3_config_generator.lib.repo import getHealthcheckConfig, getTeapotConfig -from joj3_config_generator.lib.task import fix_keyword +from joj3_config_generator.lib.task import fix_comment, fix_keyword from joj3_config_generator.models import ( Cmd, CmdFile, @@ -90,18 +90,7 @@ def convert(repo_conf: repo.Config, task_conf: task.Config) -> result.Config: if task_stage.result_detail is not None: result_detail_parser.with_.update(task_stage.result_detail) - if "dummy" in task_stage.parsers: - dummy_parser = next(p for p in conf_stage.parsers if p.name == "dummy") - if task_stage.dummy is not None: - dummy_parser.with_.update(task_stage.dummy) - - if "result-status" in task_stage.parsers: - result_status_parser = next( - p for p in conf_stage.parsers if p.name == "result-status" - ) - if task_stage.result_status is not None: - result_status_parser.with_.update(task_stage.result_status) - + conf_stage = fix_comment(task_stage, conf_stage) conf_stage = fix_keyword(task_stage, conf_stage) result_conf.stage.stages.append(conf_stage) diff --git a/joj3_config_generator/lib/task.py b/joj3_config_generator/lib/task.py index c8bffeb..3b8208c 100644 --- a/joj3_config_generator/lib/task.py +++ b/joj3_config_generator/lib/task.py @@ -18,3 +18,15 @@ def fix_keyword(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: else: continue return conf_stage + + +def fix_comment(task_stage: TaskStage, conf_stage: ResultStage) -> ResultStage: + comment_parser = ["dummy", "result-status"] + for parser in task_stage.parsers: + if parser in comment_parser: + comment_parser_ = next(p for p in conf_stage.parsers if p.name == parser) + if getattr(task_stage, parser, None) is not None: + comment_parser_.with_.update(getattr(task_stage, parser)) + else: + continue + return conf_stage