backend: new option --skipInitialGeneration to skip the full static files regeneration on start

This commit is contained in:
nemunaire 2018-12-09 19:46:18 +01:00
parent 8c87451d80
commit ab67146c0f

View File

@ -44,11 +44,10 @@ func watchsubdir(watcher *fsnotify.Watcher, pathname string) error {
}
var lastRegeneration time.Time
var skipInitialGeneration = false
func reloadSettings(config settings.FICSettings) {
if lastRegeneration != config.Generation || fic.PartialValidation != config.PartialValidation || fic.UnlockedChallenges != !config.EnableExerciceDepend || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase {
lastRegeneration = config.Generation
fic.PartialValidation = config.PartialValidation
fic.UnlockedChallenges = !config.EnableExerciceDepend
@ -56,11 +55,17 @@ func reloadSettings(config settings.FICSettings) {
fic.SubmissionCostBase = config.SubmissionCostBase
fic.SubmissionUniqueness = config.SubmissionUniqueness
log.Println("Generating files...")
go func() {
genAll()
log.Println("Full generation done")
}()
if !skipInitialGeneration {
log.Println("Generating files...")
go func() {
genAll()
log.Println("Full generation done")
}()
} else {
skipInitialGeneration = false
log.Println("Regeneration skipped by option.")
}
lastRegeneration = config.Generation
} else {
log.Println("No change found. Skipping regeneration.")
}
@ -73,6 +78,7 @@ func main() {
flag.StringVar(&TeamsDir, "teams", "./TEAMS", "Base directory where save teams JSON files")
flag.StringVar(&fic.FilesDir, "files", "/files", "Request path prefix to reach files")
var debugINotify = flag.Bool("debuginotify", false, "Show skipped inotofy events")
flag.BoolVar(&skipInitialGeneration, "skipfullgeneration", skipInitialGeneration, "Skip the initial regeneration")
flag.Parse()
log.SetPrefix("[backend] ")