sync: Fix a div by 0 when no exercice detected in theme
This commit is contained in:
parent
7e13cf28bd
commit
867e9bb345
@ -5,8 +5,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"srs.epita.fr/fic-server/libfic"
|
"srs.epita.fr/fic-server/libfic"
|
||||||
"srs.epita.fr/fic-server/settings"
|
"srs.epita.fr/fic-server/settings"
|
||||||
@ -25,7 +25,7 @@ var DeepSyncProgress uint8
|
|||||||
// SpeedySyncDeep performs a recursive synchronisation without importing files.
|
// SpeedySyncDeep performs a recursive synchronisation without importing files.
|
||||||
func SpeedySyncDeep(i Importer) (errs map[string][]string) {
|
func SpeedySyncDeep(i Importer) (errs map[string][]string) {
|
||||||
oneDeepSync.Lock()
|
oneDeepSync.Lock()
|
||||||
defer func(){
|
defer func() {
|
||||||
oneDeepSync.Unlock()
|
oneDeepSync.Unlock()
|
||||||
if DeepSyncProgress != 255 {
|
if DeepSyncProgress != 255 {
|
||||||
log.Printf("Speedy synchronization terminated at step %d/255", DeepSyncProgress)
|
log.Printf("Speedy synchronization terminated at step %d/255", DeepSyncProgress)
|
||||||
@ -44,16 +44,18 @@ func SpeedySyncDeep(i Importer) (errs map[string][]string) {
|
|||||||
var themeStep uint8 = uint8(250) / uint8(len(themes))
|
var themeStep uint8 = uint8(250) / uint8(len(themes))
|
||||||
|
|
||||||
for tid, theme := range themes {
|
for tid, theme := range themes {
|
||||||
DeepSyncProgress = 3 + uint8(tid) * themeStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep
|
||||||
errs[theme.Name] = SyncExercices(i, theme)
|
errs[theme.Name] = SyncExercices(i, theme)
|
||||||
|
|
||||||
if exercices, err := theme.GetExercices(); err == nil {
|
if exercices, err := theme.GetExercices(); err == nil {
|
||||||
|
if len(exercices) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
var exerciceStep uint8 = themeStep / uint8(len(exercices))
|
var exerciceStep uint8 = themeStep / uint8(len(exercices))
|
||||||
for eid, exercice := range exercices {
|
for eid, exercice := range exercices {
|
||||||
log.Printf("Deep synchronization in progress: %d/255 - doing Theme %q, Exercice %q: %q\n", DeepSyncProgress, theme.Name, exercice.Title, exercice.Path)
|
log.Printf("Speedy synchronization in progress: %d/255 - doing Theme %q, Exercice %q: %q\n", DeepSyncProgress, theme.Name, exercice.Title, exercice.Path)
|
||||||
|
|
||||||
DeepSyncProgress = 3 + uint8(tid) * themeStep + uint8(eid) * exerciceStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep + uint8(eid)*exerciceStep
|
||||||
errs[theme.Name] = append(errs[theme.Name], SyncExerciceFiles(i, exercice)...)
|
|
||||||
|
|
||||||
DeepSyncProgress += exerciceStep / 2
|
DeepSyncProgress += exerciceStep / 2
|
||||||
_, ferrs := SyncExerciceFlags(i, exercice)
|
_, ferrs := SyncExerciceFlags(i, exercice)
|
||||||
@ -74,7 +76,7 @@ func SpeedySyncDeep(i Importer) (errs map[string][]string) {
|
|||||||
// SyncDeep performs a recursive synchronisation: from themes to challenge items.
|
// SyncDeep performs a recursive synchronisation: from themes to challenge items.
|
||||||
func SyncDeep(i Importer) (errs map[string][]string) {
|
func SyncDeep(i Importer) (errs map[string][]string) {
|
||||||
oneDeepSync.Lock()
|
oneDeepSync.Lock()
|
||||||
defer func(){
|
defer func() {
|
||||||
oneDeepSync.Unlock()
|
oneDeepSync.Unlock()
|
||||||
if DeepSyncProgress != 255 {
|
if DeepSyncProgress != 255 {
|
||||||
log.Printf("Full synchronization terminated at step %d/255", DeepSyncProgress)
|
log.Printf("Full synchronization terminated at step %d/255", DeepSyncProgress)
|
||||||
@ -167,7 +169,7 @@ func SyncThemeDeep(i Importer, theme fic.Theme, tid int, themeStep uint8) (errs
|
|||||||
oneThemeDeepSync.Lock()
|
oneThemeDeepSync.Lock()
|
||||||
defer oneThemeDeepSync.Unlock()
|
defer oneThemeDeepSync.Unlock()
|
||||||
|
|
||||||
DeepSyncProgress = 3 + uint8(tid) * themeStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep
|
||||||
errs = SyncExercices(i, theme)
|
errs = SyncExercices(i, theme)
|
||||||
|
|
||||||
if exercices, err := theme.GetExercices(); err == nil && len(exercices) > 0 {
|
if exercices, err := theme.GetExercices(); err == nil && len(exercices) > 0 {
|
||||||
@ -175,7 +177,7 @@ func SyncThemeDeep(i Importer, theme fic.Theme, tid int, themeStep uint8) (errs
|
|||||||
for eid, exercice := range exercices {
|
for eid, exercice := range exercices {
|
||||||
log.Printf("Deep synchronization in progress: %d/255 - doing Theme %q, Exercice %q: %q\n", DeepSyncProgress, theme.Name, exercice.Title, exercice.Path)
|
log.Printf("Deep synchronization in progress: %d/255 - doing Theme %q, Exercice %q: %q\n", DeepSyncProgress, theme.Name, exercice.Title, exercice.Path)
|
||||||
|
|
||||||
DeepSyncProgress = 3 + uint8(tid) * themeStep + uint8(eid) * exerciceStep
|
DeepSyncProgress = 3 + uint8(tid)*themeStep + uint8(eid)*exerciceStep
|
||||||
errs = append(errs, SyncExerciceFiles(i, exercice)...)
|
errs = append(errs, SyncExerciceFiles(i, exercice)...)
|
||||||
|
|
||||||
DeepSyncProgress += exerciceStep / 3
|
DeepSyncProgress += exerciceStep / 3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user