refactor(cmd/joj3): move stage to main package
All checks were successful
submodules sync / sync (push) Successful in 48s
build / build (push) Successful in 1m53s
build / trigger-build-image (push) Successful in 9s

This commit is contained in:
张泊明518370910136 2025-02-18 06:26:12 -05:00
parent 1150cc4697
commit e785ce2860
GPG Key ID: D47306D7062CDA9D
3 changed files with 17 additions and 28 deletions

View File

@ -11,8 +11,7 @@ import (
joj3Conf "github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
"github.com/joint-online-judge/JOJ3/cmd/joj3/env"
"github.com/joint-online-judge/JOJ3/cmd/joj3/stage"
internalStage "github.com/joint-online-judge/JOJ3/internal/stage"
"github.com/joint-online-judge/JOJ3/internal/stage"
)
var (
@ -92,11 +91,11 @@ func mainImpl() (err error) {
groups := joj3Conf.MatchGroups(conf, conventionalCommit)
env.Attr.Groups = strings.Join(groups, ",")
env.Set()
_, forceQuitStageName, err := stage.Run(
_, forceQuitStageName, err := runStages(
conf,
groups,
func(
stageResults []internalStage.StageResult,
stageResults []stage.StageResult,
forceQuitStageName string,
) {
env.Attr.ForceQuitStageName = forceQuitStageName

View File

@ -1,8 +1,10 @@
package stage
package main
import (
"encoding/json"
"fmt"
"log/slog"
"os"
"strings"
"github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
@ -132,7 +134,7 @@ func newErrorStageResults(err error) ([]stage.StageResult, string) {
}, "Internal Error"
}
func Run(
func runStages(
conf *conf.Conf,
groups []string,
onStagesComplete func([]stage.StageResult, string),
@ -175,8 +177,16 @@ func Run(
stageResults, forceQuitStageName = newErrorStageResults(err)
}
onStagesComplete(stageResults, forceQuitStageName)
slog.Info("write stageResults")
if err = Write(conf.Stage.OutputPath, stageResults); err != nil {
slog.Info("output result start", "path", conf.Stage.OutputPath)
slog.Debug("output result start",
"path", conf.Stage.OutputPath, "results", stageResults)
content, err := json.Marshal(stageResults)
if err != nil {
slog.Error("marshal stageResults", "error", err)
}
err = os.WriteFile(conf.Stage.OutputPath,
append(content, []byte("\n")...), 0o600)
if err != nil {
slog.Error("write stageResults", "error", err)
}
slog.Info("run postStages")

View File

@ -1,20 +0,0 @@
package stage
import (
"encoding/json"
"log/slog"
"os"
"github.com/joint-online-judge/JOJ3/internal/stage"
)
func Write(outputPath string, results []stage.StageResult) error {
slog.Info("output result start", "path", outputPath)
slog.Debug("output result start", "path", outputPath, "results", results)
content, err := json.Marshal(results)
if err != nil {
return err
}
return os.WriteFile(outputPath,
append(content, []byte("\n")...), 0o600)
}