style: rename config -> conf for consistency

This commit is contained in:
张泊明518370910136 2024-03-12 15:39:05 -04:00
parent 380762a2e3
commit 8e49684abe
GPG Key ID: D47306D7062CDA9D
11 changed files with 30 additions and 30 deletions

View File

@ -1,10 +1,10 @@
.PHONY: all clean test
BUILD_DIR = ./build
APP_NAME = joj3
APPS := $(notdir $(wildcard ./cmd/*))
all:
go build -o $(BUILD_DIR)/$(APP_NAME) ./cmd/$(APP_NAME)
$(foreach APP,$(APPS), go build -o $(BUILD_DIR)/$(APP) ./cmd/$(APP);)
clean:
rm -rf $(BUILD_DIR)/*

View File

@ -46,7 +46,7 @@ Each stage contains a executor and parser.
Executor takes a `Cmd` and returns a `ExecutorResult`.
Parser takes a `ExecutorResult` and its config and returns a `ParserResult` and `bool` to indicate whether we should skip the rest stages.
Parser takes a `ExecutorResult` and its conf and returns a `ParserResult` and `bool` to indicate whether we should skip the rest stages.
### `Cmd`

View File

@ -68,7 +68,7 @@ func parseConfFile(path string) Conf {
conf := Conf{}
err := m.Load(&conf)
if err != nil {
slog.Error("parse stages config", "error", err)
slog.Error("parse stages conf", "error", err)
os.Exit(1)
}
return conf

View File

@ -51,13 +51,13 @@ func generateStages(conf Conf) []stage.Stage {
if len(s.Executor.With.Cases) == 0 {
cmds = []stage.Cmd{defaultCmd}
}
slog.Debug("parse stages config", "cmds", cmds)
slog.Debug("parse stages conf", "cmds", cmds)
stages = append(stages, stage.Stage{
Name: s.Name,
ExecutorName: s.Executor.Name,
ExecutorCmds: cmds,
ParserName: s.Parser.Name,
ParserConfig: s.Parser.With,
ParserConf: s.Parser.With,
})
}
return stages

View File

@ -8,7 +8,7 @@ var name = "sandbox"
func init() {
stage.RegisterExecutor(name, &Sandbox{
// TODO: read from config
// TODO: read from conf
execClient: createExecClient("localhost:5051", ""),
cachedMap: make(map[string]string),
})

View File

@ -7,7 +7,7 @@ import (
"focs.ji.sjtu.edu.cn/git/FOCS-dev/JOJ3/internal/stage"
)
type Config struct {
type Conf struct {
Cases []struct {
Score int
StdoutPath string
@ -16,27 +16,27 @@ type Config struct {
type Diff struct{}
func (*Diff) Run(results []stage.ExecutorResult, configAny any) (
func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
[]stage.ParserResult, bool, error,
) {
config, err := stage.DecodeConfig[Config](configAny)
conf, err := stage.DecodeConf[Conf](confAny)
if err != nil {
return nil, true, err
}
if len(config.Cases) != len(results) {
if len(conf.Cases) != len(results) {
return nil, true, fmt.Errorf("cases number not match")
}
var res []stage.ParserResult
for i, caseConfig := range config.Cases {
for i, caseConf := range conf.Cases {
result := results[i]
score := 0
stdout, err := os.ReadFile(caseConfig.StdoutPath)
stdout, err := os.ReadFile(caseConf.StdoutPath)
if err != nil {
return nil, true, err
}
// TODO: more compare strategies
if string(stdout) == result.Files["stdout"] {
score = caseConfig.Score
score = caseConf.Score
}
res = append(res, stage.ParserResult{
Score: score,

View File

@ -6,27 +6,27 @@ import (
"focs.ji.sjtu.edu.cn/git/FOCS-dev/JOJ3/internal/stage"
)
type Config struct {
type Conf struct {
Score int
Comment string
}
type Dummy struct{}
func (*Dummy) Run(results []stage.ExecutorResult, configAny any) (
func (*Dummy) Run(results []stage.ExecutorResult, confAny any) (
[]stage.ParserResult, bool, error,
) {
config, err := stage.DecodeConfig[Config](configAny)
conf, err := stage.DecodeConf[Conf](confAny)
if err != nil {
return nil, true, err
}
var res []stage.ParserResult
for _, result := range results {
res = append(res, stage.ParserResult{
Score: config.Score,
Score: conf.Score,
Comment: fmt.Sprintf(
"%s, executor status: run time: %d ns, memory: %d bytes",
config.Comment, result.RunTime, result.Memory,
conf.Comment, result.RunTime, result.Memory,
),
})
}

View File

@ -7,15 +7,15 @@ import (
"github.com/criyle/go-judge/envexec"
)
type Config struct{}
type Conf struct{}
type ResultStatus struct{}
func (*ResultStatus) Run(results []stage.ExecutorResult, configAny any) (
func (*ResultStatus) Run(results []stage.ExecutorResult, confAny any) (
[]stage.ParserResult, bool, error,
) {
// TODO: more config options
_, err := stage.DecodeConfig[Config](configAny)
// TODO: more conf options
_, err := stage.DecodeConf[Conf](confAny)
if err != nil {
return nil, true, err
}

View File

@ -155,7 +155,7 @@ type Stage struct {
ExecutorName string
ExecutorCmds []Cmd
ParserName string
ParserConfig any
ParserConf any
}
type ParserResult struct {

View File

@ -19,9 +19,9 @@ func Run(stages []Stage) []StageResult {
break
}
slog.Debug("executor run done", "results", executorResults)
slog.Debug("parser run start", "config", stage.ParserConfig)
slog.Debug("parser run start", "conf", stage.ParserConf)
parser := parserMap[stage.ParserName]
parserResults, end, err := parser.Run(executorResults, stage.ParserConfig)
parserResults, end, err := parser.Run(executorResults, stage.ParserConf)
if err != nil {
slog.Error("parser run error", "name", stage.ExecutorName, "error", err)
break

View File

@ -2,11 +2,11 @@ package stage
import "github.com/mitchellh/mapstructure"
func DecodeConfig[T any](configAny any) (*T, error) {
var config T
err := mapstructure.Decode(configAny, &config)
func DecodeConf[T any](confAny any) (*T, error) {
var conf T
err := mapstructure.Decode(confAny, &conf)
if err != nil {
return nil, err
}
return &config, nil
return &conf, nil
}