# HG changeset patch # User Sascha L. Teichmann # Date 1561450915 -7200 # Node ID 96d6e6417819c938829bf2ff4b9abeac69798de1 # Parent f20bd1aee549e7f7e7f40137b820564c5d0d0a31 SR import: Allow upload of none-ZIP files and assume they are plain XYZ files. diff -r f20bd1aee549 -r 96d6e6417819 pkg/controllers/srimports.go --- a/pkg/controllers/srimports.go Mon Jun 24 17:43:54 2019 +0200 +++ b/pkg/controllers/srimports.go Tue Jun 25 10:21:55 2019 +0200 @@ -193,17 +193,19 @@ return } + var messages []string + srFile := filepath.Join(dir, "sr.zip") var zr *zip.ReadCloser - if zr, err = zip.OpenReader(srFile); err != nil { - return - } var once sync.Once closeOnce := func() { zr.Close() } - defer once.Do(closeOnce) - var messages []string + if zr, err = zip.OpenReader(srFile); err != nil { + messages = append(messages, fmt.Sprintf("Not a ZIP file: %v")) + } else { + defer once.Do(closeOnce) + } var result struct { Token string `json:"token,omitempty"` @@ -213,7 +215,11 @@ find := func(ext string) *zip.File { return common.FindInZIP(zr, ext) } - noXYZ := find(".xyz") == nil && find(".txt") == nil + var noXYZ bool + if zr != nil { + noXYZ = find(".xyz") == nil && find(".txt") == nil + } + if noXYZ { messages = append(messages, "no .xyz or .txt file found.") } @@ -233,7 +239,10 @@ result.Meta = meta } } - once.Do(closeOnce) + + if zr != nil { + once.Do(closeOnce) + } code := http.StatusCreated