feat(cmd/joj3): expire unix timestamp conf
This commit is contained in:
parent
b1d10dc3f9
commit
f09dc8c1c1
|
@ -7,6 +7,7 @@ import (
|
|||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/go-git/go-git/v5"
|
||||
"github.com/joint-online-judge/JOJ3/internal/stage"
|
||||
|
@ -30,9 +31,10 @@ type ConfStage struct {
|
|||
}
|
||||
|
||||
type Conf struct {
|
||||
Name string `default:"unknown"`
|
||||
LogPath string `default:""`
|
||||
Stage struct {
|
||||
Name string `default:"unknown"`
|
||||
LogPath string `default:""`
|
||||
ExpireUnixTimestamp int64 `default:"-1"`
|
||||
Stage struct {
|
||||
SandboxExecServer string `default:"localhost:5051"`
|
||||
SandboxToken string `default:""`
|
||||
OutputPath string `default:"joj3_result.json"`
|
||||
|
@ -254,3 +256,11 @@ func ListValidScopes(confRoot, confName string) ([]string, error) {
|
|||
})
|
||||
return validScopes, err
|
||||
}
|
||||
|
||||
func CheckExpire(conf *Conf) error {
|
||||
if conf.ExpireUnixTimestamp > 0 &&
|
||||
conf.ExpireUnixTimestamp < time.Now().Unix() {
|
||||
return fmt.Errorf("config file expired: %d", conf.ExpireUnixTimestamp)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -69,6 +69,10 @@ func mainImpl() error {
|
|||
slog.Error("setup slog", "error", err)
|
||||
return err
|
||||
}
|
||||
if err := conf.CheckExpire(confObj); err != nil {
|
||||
slog.Error("conf check expire", "error", err)
|
||||
return err
|
||||
}
|
||||
if err := stage.Run(confObj, group); err != nil {
|
||||
slog.Error("stage run", "error", err)
|
||||
return err
|
||||
|
|
Loading…
Reference in New Issue
Block a user