chore(parser): move Conf struct to meta.go
This commit is contained in:
parent
61c9dcebb7
commit
49b7c7c5db
|
@ -4,6 +4,22 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "clangtidy"
|
var name = "clangtidy"
|
||||||
|
|
||||||
|
type Match struct {
|
||||||
|
Keywords []string
|
||||||
|
Score int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
RootDir string `default:"/w"`
|
||||||
|
Matches []Match
|
||||||
|
Stdout string `default:"stdout"`
|
||||||
|
Stderr string `default:"stderr"`
|
||||||
|
ForceQuitOnDeduct bool `default:"false"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClangTidy struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &ClangTidy{})
|
stage.RegisterParser(name, &ClangTidy{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,22 +6,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Match struct {
|
|
||||||
Keywords []string
|
|
||||||
Score int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
RootDir string `default:"/w"`
|
|
||||||
Matches []Match
|
|
||||||
Stdout string `default:"stdout"`
|
|
||||||
Stderr string `default:"stderr"`
|
|
||||||
ForceQuitOnDeduct bool `default:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ClangTidy struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
stdout := executorResult.Files[conf.Stdout]
|
stdout := executorResult.Files[conf.Stdout]
|
||||||
// stderr := executorResult.Files[conf.Stderr]
|
// stderr := executorResult.Files[conf.Stderr]
|
||||||
|
|
|
@ -4,6 +4,21 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "cppcheck"
|
var name = "cppcheck"
|
||||||
|
|
||||||
|
type Match struct {
|
||||||
|
Keywords []string
|
||||||
|
Score int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Matches []Match
|
||||||
|
Stdout string `default:"stdout"`
|
||||||
|
Stderr string `default:"stderr"`
|
||||||
|
ForceQuitOnDeduct bool `default:"false"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CppCheck struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &CppCheck{})
|
stage.RegisterParser(name, &CppCheck{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,19 +8,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Match struct {
|
|
||||||
Keywords []string
|
|
||||||
Score int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Matches []Match
|
|
||||||
Stdout string `default:"stdout"`
|
|
||||||
Stderr string `default:"stderr"`
|
|
||||||
ForceQuitOnDeduct bool `default:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Record struct {
|
type Record struct {
|
||||||
File string `json:"file"`
|
File string `json:"file"`
|
||||||
Line int `json:"line"`
|
Line int `json:"line"`
|
||||||
|
@ -30,8 +17,6 @@ type Record struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CppCheck struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
// stdout := executorResult.Files[conf.Stdout]
|
// stdout := executorResult.Files[conf.Stdout]
|
||||||
stderr := executorResult.Files[conf.Stderr]
|
stderr := executorResult.Files[conf.Stderr]
|
||||||
|
|
|
@ -4,6 +4,21 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "cpplint"
|
var name = "cpplint"
|
||||||
|
|
||||||
|
type Match struct {
|
||||||
|
Keywords []string
|
||||||
|
Score int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Matches []Match
|
||||||
|
Stdout string `default:"stdout"`
|
||||||
|
Stderr string `default:"stderr"`
|
||||||
|
ForceQuitOnDeduct bool `default:"false"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cpplint struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Cpplint{})
|
stage.RegisterParser(name, &Cpplint{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,21 +9,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Match struct {
|
|
||||||
Keywords []string
|
|
||||||
Score int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Matches []Match
|
|
||||||
Stdout string `default:"stdout"`
|
|
||||||
Stderr string `default:"stderr"`
|
|
||||||
ForceQuitOnDeduct bool `default:"false"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Cpplint struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
stderr := executorResult.Files[conf.Stderr]
|
stderr := executorResult.Files[conf.Stderr]
|
||||||
pattern := `(.+):(\d+): (.+) \[(.+)\] \[(\d)]\n`
|
pattern := `(.+):(\d+): (.+) \[(.+)\] \[(\d)]\n`
|
||||||
|
|
|
@ -4,6 +4,10 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "debug"
|
var name = "debug"
|
||||||
|
|
||||||
|
type Conf struct{}
|
||||||
|
|
||||||
|
type Debug struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Debug{})
|
stage.RegisterParser(name, &Debug{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,10 +6,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct{}
|
|
||||||
|
|
||||||
type Debug struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
slog.Debug("debug parser", "executorResult", executorResult)
|
slog.Debug("debug parser", "executorResult", executorResult)
|
||||||
for name, content := range executorResult.Files {
|
for name, content := range executorResult.Files {
|
||||||
|
|
|
@ -4,6 +4,26 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "diff"
|
var name = "diff"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
PassComment string `default:"🥳Passed!\n"`
|
||||||
|
FailComment string `default:"🧐Failed...\n"`
|
||||||
|
FailOnNotAccepted bool `default:"true"`
|
||||||
|
ForceQuitOnFailed bool `default:"false"`
|
||||||
|
Cases []struct {
|
||||||
|
Outputs []struct {
|
||||||
|
Score int
|
||||||
|
FileName string
|
||||||
|
AnswerPath string
|
||||||
|
CompareSpace bool
|
||||||
|
AlwaysHide bool
|
||||||
|
ForceQuitOnDiff bool
|
||||||
|
MaxDiffLength int `default:"2048"` // just for reference
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Diff struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Diff{})
|
stage.RegisterParser(name, &Diff{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,26 +19,6 @@ const (
|
||||||
MOVE
|
MOVE
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
PassComment string `default:"🥳Passed!\n"`
|
|
||||||
FailComment string `default:"🧐Failed...\n"`
|
|
||||||
FailOnNotAccepted bool `default:"true"`
|
|
||||||
ForceQuitOnFailed bool `default:"false"`
|
|
||||||
Cases []struct {
|
|
||||||
Outputs []struct {
|
|
||||||
Score int
|
|
||||||
FileName string
|
|
||||||
AnswerPath string
|
|
||||||
CompareSpace bool
|
|
||||||
AlwaysHide bool
|
|
||||||
ForceQuitOnDiff bool
|
|
||||||
MaxDiffLength int `default:"2048"` // just for reference
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Diff struct{}
|
|
||||||
|
|
||||||
func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
func (*Diff) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
[]stage.ParserResult, bool, error,
|
[]stage.ParserResult, bool, error,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -4,6 +4,14 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "dummy"
|
var name = "dummy"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Comment string
|
||||||
|
ForceQuit bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dummy struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Dummy{})
|
stage.RegisterParser(name, &Dummy{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Comment string
|
|
||||||
ForceQuit bool
|
|
||||||
}
|
|
||||||
|
|
||||||
type Dummy struct{}
|
|
||||||
|
|
||||||
func (*Dummy) Run(results []stage.ExecutorResult, confAny any) (
|
func (*Dummy) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
[]stage.ParserResult, bool, error,
|
[]stage.ParserResult, bool, error,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -4,6 +4,13 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "healthcheck"
|
var name = "healthcheck"
|
||||||
|
|
||||||
|
type Healthcheck struct{}
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Stdout string `default:"stdout"`
|
||||||
|
Stderr string `default:"stderr"`
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Healthcheck{})
|
stage.RegisterParser(name, &Healthcheck{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/pkg/healthcheck"
|
"github.com/joint-online-judge/JOJ3/pkg/healthcheck"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Healthcheck struct{}
|
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Stdout string `default:"stdout"`
|
|
||||||
Stderr string `default:"stderr"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) (stage.ParserResult, bool) {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) (stage.ParserResult, bool) {
|
||||||
stdout := executorResult.Files[conf.Stdout]
|
stdout := executorResult.Files[conf.Stdout]
|
||||||
stderr := executorResult.Files[conf.Stderr]
|
stderr := executorResult.Files[conf.Stderr]
|
||||||
|
|
|
@ -4,6 +4,21 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "keyword"
|
var name = "keyword"
|
||||||
|
|
||||||
|
type Match struct {
|
||||||
|
Keywords []string
|
||||||
|
Score int
|
||||||
|
MaxMatchCount int
|
||||||
|
}
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Files []string
|
||||||
|
ForceQuitOnDeduct bool `default:"false"`
|
||||||
|
Matches []Match
|
||||||
|
}
|
||||||
|
|
||||||
|
type Keyword struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Keyword{})
|
stage.RegisterParser(name, &Keyword{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,21 +8,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Match struct {
|
|
||||||
Keywords []string
|
|
||||||
Score int
|
|
||||||
MaxMatchCount int
|
|
||||||
}
|
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Files []string
|
|
||||||
ForceQuitOnDeduct bool `default:"false"`
|
|
||||||
Matches []Match
|
|
||||||
}
|
|
||||||
|
|
||||||
type Keyword struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
score := conf.Score
|
score := conf.Score
|
||||||
comment := ""
|
comment := ""
|
||||||
|
|
|
@ -4,6 +4,14 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "log"
|
var name = "log"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
FileName string `default:"stdout"`
|
||||||
|
Msg string `default:"log msg"`
|
||||||
|
Level int `default:"0"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Log struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Log{})
|
stage.RegisterParser(name, &Log{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
FileName string `default:"stdout"`
|
|
||||||
Msg string `default:"log msg"`
|
|
||||||
Level int `default:"0"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Log struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
content := executorResult.Files[conf.FileName]
|
content := executorResult.Files[conf.FileName]
|
||||||
var data map[string]any
|
var data map[string]any
|
||||||
|
|
|
@ -4,6 +4,21 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "result-detail"
|
var name = "result-detail"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
ShowExecutorStatus bool `default:"true"`
|
||||||
|
ShowExitStatus bool `default:"false"`
|
||||||
|
ShowError bool `default:"false"`
|
||||||
|
ShowTime bool `default:"true"`
|
||||||
|
ShowMemory bool `default:"true"`
|
||||||
|
ShowRunTime bool `default:"false"`
|
||||||
|
ShowFiles []string
|
||||||
|
FilesInCodeBlock bool `default:"true"`
|
||||||
|
MaxFileLength int `default:"65536"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResultDetail struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &ResultDetail{})
|
stage.RegisterParser(name, &ResultDetail{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,21 +6,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
ShowExecutorStatus bool `default:"true"`
|
|
||||||
ShowExitStatus bool `default:"false"`
|
|
||||||
ShowError bool `default:"false"`
|
|
||||||
ShowTime bool `default:"true"`
|
|
||||||
ShowMemory bool `default:"true"`
|
|
||||||
ShowRunTime bool `default:"false"`
|
|
||||||
ShowFiles []string
|
|
||||||
FilesInCodeBlock bool `default:"true"`
|
|
||||||
MaxFileLength int `default:"65536"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResultDetail struct{}
|
|
||||||
|
|
||||||
func (*ResultDetail) Run(results []stage.ExecutorResult, confAny any) (
|
func (*ResultDetail) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
[]stage.ParserResult, bool, error,
|
[]stage.ParserResult, bool, error,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -4,6 +4,14 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "result-status"
|
var name = "result-status"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Comment string
|
||||||
|
ForceQuitOnNotAccepted bool `default:"true"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ResultStatus struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &ResultStatus{})
|
stage.RegisterParser(name, &ResultStatus{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Comment string
|
|
||||||
ForceQuitOnNotAccepted bool `default:"true"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResultStatus struct{}
|
|
||||||
|
|
||||||
func (*ResultStatus) Run(results []stage.ExecutorResult, confAny any) (
|
func (*ResultStatus) Run(results []stage.ExecutorResult, confAny any) (
|
||||||
[]stage.ParserResult, bool, error,
|
[]stage.ParserResult, bool, error,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -4,6 +4,15 @@ import "github.com/joint-online-judge/JOJ3/internal/stage"
|
||||||
|
|
||||||
var name = "sample"
|
var name = "sample"
|
||||||
|
|
||||||
|
type Conf struct {
|
||||||
|
Score int
|
||||||
|
Comment string
|
||||||
|
Stdout string `default:"stdout"`
|
||||||
|
Stderr string `default:"stderr"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sample struct{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
stage.RegisterParser(name, &Sample{})
|
stage.RegisterParser(name, &Sample{})
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,15 +8,6 @@ import (
|
||||||
"github.com/joint-online-judge/JOJ3/pkg/sample"
|
"github.com/joint-online-judge/JOJ3/pkg/sample"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Conf struct {
|
|
||||||
Score int
|
|
||||||
Comment string
|
|
||||||
Stdout string `default:"stdout"`
|
|
||||||
Stderr string `default:"stderr"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Sample struct{}
|
|
||||||
|
|
||||||
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult {
|
||||||
stdout := executorResult.Files[conf.Stdout]
|
stdout := executorResult.Files[conf.Stdout]
|
||||||
// stderr := executorResult.Files[conf.Stderr]
|
// stderr := executorResult.Files[conf.Stderr]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user