From fa7e0e25c431d085296b0af4282f499822273b48 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Fri, 30 Dec 2016 20:23:19 +0100 Subject: [PATCH] admin: new argument --rapidimport to speed up the import but don't ensure consistency --- admin/api/file.go | 8 ++++++++ admin/main.go | 1 + 2 files changed, 9 insertions(+) diff --git a/admin/api/file.go b/admin/api/file.go index 1d857259..0d69bf92 100644 --- a/admin/api/file.go +++ b/admin/api/file.go @@ -19,6 +19,7 @@ import ( var CloudDAVBase string var CloudUsername string var CloudPassword string +var RapidImport bool type uploadedFile struct { URI string @@ -77,6 +78,13 @@ func createExerciceFile(exercice fic.Exercice, body []byte) (interface{}, error) pathname := path.Join(fic.FilesDir, strings.ToLower(base32.StdEncoding.EncodeToString(hash[:])), path.Base(fromURI)) + // Remove the file if it exists + if _, err := os.Stat(pathname); os.IsExist(err) && !RapidImport { + if err := os.Remove(pathname); err != nil { + return nil, err + } + } + if _, err := os.Stat(pathname); os.IsNotExist(err) { log.Println(logStr, pathname) if err := os.MkdirAll(path.Dir(pathname), 0777); err != nil { diff --git a/admin/main.go b/admin/main.go index 273bb65d..69f029fd 100644 --- a/admin/main.go +++ b/admin/main.go @@ -30,6 +30,7 @@ func main() { "Base directory where found challenges files, cloud part") flag.StringVar(&api.CloudUsername, "clouduser", "fic", "Username used to sync") flag.StringVar(&api.CloudPassword, "cloudpass", "", "Password used to sync") + flag.BoolVar(&api.RapidImport, "rapidimport", false, "Don't try to reimport an existing file") flag.Parse() log.SetPrefix("[admin] ")