admin/sync: Also handle uncompressed file in CheckExerciceFiles

This commit is contained in:
nemunaire 2022-11-03 21:35:05 +01:00
parent 5b47d1c250
commit ae1378780f
2 changed files with 10 additions and 3 deletions

View File

@ -112,7 +112,14 @@ func CheckExerciceFiles(i Importer, exercice *fic.Exercice, exceptions *CheckExc
} else if size, err := getFileSize(i, path.Join(exercice.Path, "files", fname)); err != nil {
errs = append(errs, NewFileError(exercice, fname, err))
} else {
file := exercice.NewDummyFile(path.Join(exercice.Path, "files", fname), getDestinationFilePath(path.Join(exercice.Path, "files", fname)), (*hash512).Sum(nil), size)
var digest_shown []byte
if strings.HasSuffix(fname, ".gz") {
if d, exists := digests[strings.TrimSuffix(fname, ".gz")]; exists {
digest_shown = d
}
}
file := exercice.NewDummyFile(path.Join(exercice.Path, "files", fname), getDestinationFilePath(path.Join(exercice.Path, "files", fname)), (*hash512).Sum(nil), digest_shown, size)
// Call checks hooks
for _, h := range hooks.fileHooks {

View File

@ -50,7 +50,7 @@ type EFile struct {
// NewDummyFile creates an EFile, without any link to an actual Exercice File.
// It is used to check the file validity
func (e *Exercice) NewDummyFile(origin string, dest string, checksum []byte, size int64) *EFile {
func (e *Exercice) NewDummyFile(origin string, dest string, checksum []byte, checksumShown []byte, size int64) *EFile {
return &EFile{
Id: 0,
origin: origin,
@ -58,7 +58,7 @@ func (e *Exercice) NewDummyFile(origin string, dest string, checksum []byte, siz
IdExercice: e.Id,
Name: path.Base(origin),
Checksum: checksum,
ChecksumShown: nil,
ChecksumShown: checksumShown,
Size: size,
Published: true,
}