chore: flatten nested conf fields
This commit is contained in:
parent
9a109372f2
commit
7bd216efda
|
@ -183,20 +183,23 @@ func MatchGroups(conf *Conf, conventionalCommit *ConventionalCommit) []string {
|
||||||
keywords := []string{}
|
keywords := []string{}
|
||||||
loweredCommitGroup := strings.ToLower(conventionalCommit.Group)
|
loweredCommitGroup := strings.ToLower(conventionalCommit.Group)
|
||||||
if loweredCommitGroup == "all" {
|
if loweredCommitGroup == "all" {
|
||||||
for i := range conf.Stage.PreStages {
|
for i := range conf.PreStages {
|
||||||
conf.Stage.PreStages[i].Group = ""
|
conf.PreStages[i].Group = ""
|
||||||
|
conf.PreStages[i].Groups = nil
|
||||||
}
|
}
|
||||||
for i := range conf.Stage.Stages {
|
for i := range conf.Stages {
|
||||||
conf.Stage.Stages[i].Group = ""
|
conf.Stages[i].Group = ""
|
||||||
|
conf.Stages[i].Groups = nil
|
||||||
}
|
}
|
||||||
for i := range conf.Stage.PostStages {
|
for i := range conf.PostStages {
|
||||||
conf.Stage.PostStages[i].Group = ""
|
conf.PostStages[i].Group = ""
|
||||||
|
conf.PostStages[i].Groups = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
confStages := []ConfStage{}
|
confStages := []ConfStage{}
|
||||||
confStages = append(confStages, conf.Stage.PreStages...)
|
confStages = append(confStages, conf.PreStages...)
|
||||||
confStages = append(confStages, conf.Stage.Stages...)
|
confStages = append(confStages, conf.Stages...)
|
||||||
confStages = append(confStages, conf.Stage.PostStages...)
|
confStages = append(confStages, conf.PostStages...)
|
||||||
for _, stage := range confStages {
|
for _, stage := range confStages {
|
||||||
if stage.Group != "" {
|
if stage.Group != "" {
|
||||||
keyword := strings.ToLower(stage.Group)
|
keyword := strings.ToLower(stage.Group)
|
||||||
|
|
|
@ -22,14 +22,21 @@ type ConfStage struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Conf struct {
|
type Conf struct {
|
||||||
Name string `default:"unknown"`
|
Name string `default:"unknown"`
|
||||||
LogPath string `default:""`
|
LogPath string `default:""`
|
||||||
ActorCsvPath string `default:""`
|
ActorCsvPath string `default:""`
|
||||||
MaxTotalScore int `default:"-1"`
|
MaxTotalScore int `default:"-1"`
|
||||||
Stage struct {
|
SandboxExecServer string `default:"localhost:5051"`
|
||||||
SandboxExecServer string `default:"localhost:5051"`
|
SandboxToken string `default:""`
|
||||||
SandboxToken string `default:""`
|
OutputPath string `default:"joj3_result.json"`
|
||||||
OutputPath string `default:"joj3_result.json"`
|
PreStages []ConfStage
|
||||||
|
Stages []ConfStage
|
||||||
|
PostStages []ConfStage
|
||||||
|
// TODO: remove this nested struct
|
||||||
|
Stage struct {
|
||||||
|
SandboxExecServer string
|
||||||
|
SandboxToken string
|
||||||
|
OutputPath string
|
||||||
PreStages []ConfStage
|
PreStages []ConfStage
|
||||||
Stages []ConfStage
|
Stages []ConfStage
|
||||||
PostStages []ConfStage
|
PostStages []ConfStage
|
||||||
|
|
|
@ -53,7 +53,7 @@ func getConf(commitMsg string) (*joj3Conf.Conf, *joj3Conf.ConventionalCommit, er
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
env.SetConfName(conf.Name)
|
env.SetConfName(conf.Name)
|
||||||
env.SetOutputPath(conf.Stage.OutputPath)
|
env.SetOutputPath(conf.OutputPath)
|
||||||
if err := showConfStat(confPath, confStat); err != nil {
|
if err := showConfStat(confPath, confStat); err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,31 @@ func loadConf(confPath string) (*joj3Conf.Conf, error) {
|
||||||
slog.Error("parse conf", "error", err)
|
slog.Error("parse conf", "error", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
// TODO: remove this compatible code for nested struct
|
||||||
|
if conf.Stage.SandboxExecServer != "" {
|
||||||
|
conf.SandboxExecServer = conf.Stage.SandboxExecServer
|
||||||
|
conf.Stage.SandboxExecServer = ""
|
||||||
|
}
|
||||||
|
if conf.Stage.SandboxToken != "" {
|
||||||
|
conf.SandboxToken = conf.Stage.SandboxToken
|
||||||
|
conf.Stage.SandboxToken = ""
|
||||||
|
}
|
||||||
|
if conf.Stage.OutputPath != "" {
|
||||||
|
conf.OutputPath = conf.Stage.OutputPath
|
||||||
|
conf.Stage.OutputPath = ""
|
||||||
|
}
|
||||||
|
if len(conf.Stage.PreStages) > 0 {
|
||||||
|
conf.PreStages = conf.Stage.PreStages
|
||||||
|
conf.Stage.PreStages = nil
|
||||||
|
}
|
||||||
|
if len(conf.Stage.Stages) > 0 {
|
||||||
|
conf.Stages = conf.Stage.Stages
|
||||||
|
conf.Stage.Stages = nil
|
||||||
|
}
|
||||||
|
if len(conf.Stage.PostStages) > 0 {
|
||||||
|
conf.PostStages = conf.Stage.PostStages
|
||||||
|
conf.Stage.PostStages = nil
|
||||||
|
}
|
||||||
slog.Debug("conf loaded", "conf", conf, "joj3 version", Version)
|
slog.Debug("conf loaded", "conf", conf, "joj3 version", Version)
|
||||||
return conf, nil
|
return conf, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,22 +137,22 @@ func runStages(
|
||||||
stageResults []stage.StageResult, forceQuitStageName string, err error,
|
stageResults []stage.StageResult, forceQuitStageName string, err error,
|
||||||
) {
|
) {
|
||||||
executor.InitWithConf(
|
executor.InitWithConf(
|
||||||
conf.Stage.SandboxExecServer,
|
conf.SandboxExecServer,
|
||||||
conf.Stage.SandboxToken,
|
conf.SandboxToken,
|
||||||
)
|
)
|
||||||
preStages, err := generateStages(conf.Stage.PreStages, groups)
|
preStages, err := generateStages(conf.PreStages, groups)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("generate preStages", "error", err)
|
slog.Error("generate preStages", "error", err)
|
||||||
stageResults, forceQuitStageName = newErrorStageResults(err)
|
stageResults, forceQuitStageName = newErrorStageResults(err)
|
||||||
return stageResults, forceQuitStageName, err
|
return stageResults, forceQuitStageName, err
|
||||||
}
|
}
|
||||||
stages, err := generateStages(conf.Stage.Stages, groups)
|
stages, err := generateStages(conf.Stages, groups)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("generate stages", "error", err)
|
slog.Error("generate stages", "error", err)
|
||||||
stageResults, forceQuitStageName = newErrorStageResults(err)
|
stageResults, forceQuitStageName = newErrorStageResults(err)
|
||||||
return stageResults, forceQuitStageName, err
|
return stageResults, forceQuitStageName, err
|
||||||
}
|
}
|
||||||
postStages, err := generateStages(conf.Stage.PostStages, groups)
|
postStages, err := generateStages(conf.PostStages, groups)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("generate postStages", "error", err)
|
slog.Error("generate postStages", "error", err)
|
||||||
stageResults, forceQuitStageName = newErrorStageResults(err)
|
stageResults, forceQuitStageName = newErrorStageResults(err)
|
||||||
|
@ -172,14 +172,14 @@ func runStages(
|
||||||
stageResults, forceQuitStageName = newErrorStageResults(err)
|
stageResults, forceQuitStageName = newErrorStageResults(err)
|
||||||
}
|
}
|
||||||
onStagesComplete(stageResults, forceQuitStageName)
|
onStagesComplete(stageResults, forceQuitStageName)
|
||||||
slog.Info("output result start", "path", conf.Stage.OutputPath)
|
slog.Info("output result start", "path", conf.OutputPath)
|
||||||
slog.Debug("output result start",
|
slog.Debug("output result start",
|
||||||
"path", conf.Stage.OutputPath, "results", stageResults)
|
"path", conf.OutputPath, "results", stageResults)
|
||||||
content, err := json.Marshal(stageResults)
|
content, err := json.Marshal(stageResults)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("marshal stageResults", "error", err)
|
slog.Error("marshal stageResults", "error", err)
|
||||||
}
|
}
|
||||||
err = os.WriteFile(conf.Stage.OutputPath,
|
err = os.WriteFile(conf.OutputPath,
|
||||||
append(content, []byte("\n")...), 0o600)
|
append(content, []byte("\n")...), 0o600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("write stageResults", "error", err)
|
slog.Error("write stageResults", "error", err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user