From fae671321004746ed3bdfd6281bac232a9ae3ed3 Mon Sep 17 00:00:00 2001
From: Nuvole <jon-lee@sjtu.edu.cn>
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 66da3d4..91a27e3 100644
--- a/joj3_config_generator/convert.py
+++ b/joj3_config_generator/convert.py
@@ -20,7 +20,7 @@ from joj3_config_generator.lib.task import (
 )
 from joj3_config_generator.models import joj1, repo, result, task
 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,
@@ -91,18 +91,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