refactor(cmd/joj3): move stage to main package
This commit is contained in:
parent
1150cc4697
commit
e785ce2860
|
@ -11,8 +11,7 @@ import (
|
||||||
|
|
||||||
joj3Conf "github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
|
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/env"
|
||||||
"github.com/joint-online-judge/JOJ3/cmd/joj3/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
internalStage "github.com/joint-online-judge/JOJ3/internal/stage"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -92,11 +91,11 @@ func mainImpl() (err error) {
|
||||||
groups := joj3Conf.MatchGroups(conf, conventionalCommit)
|
groups := joj3Conf.MatchGroups(conf, conventionalCommit)
|
||||||
env.Attr.Groups = strings.Join(groups, ",")
|
env.Attr.Groups = strings.Join(groups, ",")
|
||||||
env.Set()
|
env.Set()
|
||||||
_, forceQuitStageName, err := stage.Run(
|
_, forceQuitStageName, err := runStages(
|
||||||
conf,
|
conf,
|
||||||
groups,
|
groups,
|
||||||
func(
|
func(
|
||||||
stageResults []internalStage.StageResult,
|
stageResults []stage.StageResult,
|
||||||
forceQuitStageName string,
|
forceQuitStageName string,
|
||||||
) {
|
) {
|
||||||
env.Attr.ForceQuitStageName = forceQuitStageName
|
env.Attr.ForceQuitStageName = forceQuitStageName
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package stage
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
|
"github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
|
||||||
|
@ -132,7 +134,7 @@ func newErrorStageResults(err error) ([]stage.StageResult, string) {
|
||||||
}, "Internal Error"
|
}, "Internal Error"
|
||||||
}
|
}
|
||||||
|
|
||||||
func Run(
|
func runStages(
|
||||||
conf *conf.Conf,
|
conf *conf.Conf,
|
||||||
groups []string,
|
groups []string,
|
||||||
onStagesComplete func([]stage.StageResult, string),
|
onStagesComplete func([]stage.StageResult, string),
|
||||||
|
@ -175,8 +177,16 @@ func Run(
|
||||||
stageResults, forceQuitStageName = newErrorStageResults(err)
|
stageResults, forceQuitStageName = newErrorStageResults(err)
|
||||||
}
|
}
|
||||||
onStagesComplete(stageResults, forceQuitStageName)
|
onStagesComplete(stageResults, forceQuitStageName)
|
||||||
slog.Info("write stageResults")
|
slog.Info("output result start", "path", conf.Stage.OutputPath)
|
||||||
if err = Write(conf.Stage.OutputPath, stageResults); err != nil {
|
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.Error("write stageResults", "error", err)
|
||||||
}
|
}
|
||||||
slog.Info("run postStages")
|
slog.Info("run postStages")
|
|
@ -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)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user