summaryrefslogtreecommitdiff
path: root/internal/pipeline
diff options
context:
space:
mode:
authorAntonia Rescribe <antonia@rescribe.xyz>2021-11-22 17:35:12 +0000
committerNick White <git@njw.name>2021-11-22 18:05:53 +0000
commit26a11790593d55dc6fa3bc6f76fec1501acfa376 (patch)
treeca1cc4fd1f7c3d3f2e7f3c5d49ce663d9411b810 /internal/pipeline
parent673f77278f5b65576de7fee651ae290345e65282 (diff)
changed put.go so that a 4-digit number is appended to the end of each filename when images are uploaded to the pipeline
Diffstat (limited to 'internal/pipeline')
-rw-r--r--internal/pipeline/put.go29
1 files changed, 20 insertions, 9 deletions
diff --git a/internal/pipeline/put.go b/internal/pipeline/put.go
index 8cbecac..444735a 100644
--- a/internal/pipeline/put.go
+++ b/internal/pipeline/put.go
@@ -9,6 +9,7 @@ import (
"image"
_ "image/jpeg"
_ "image/png"
+ "io/ioutil"
"os"
"path/filepath"
"strings"
@@ -81,18 +82,28 @@ func DetectQueueType(dir string, conn Queuer) string {
// from a directory (recursively) into conn.WIPStorageId(), prefixed with
// the given bookname and a slash
func UploadImages(dir string, bookname string, conn Uploader) error {
- walker := make(fileWalk)
- go func() {
- _ = filepath.Walk(dir, walker.Walk)
- close(walker)
- }()
+ files, err := ioutil.ReadDir(dir)
+ if err != nil {
+ fmt.Errorf("Failed to read directory %s: %v", dir, err)
+ }
- for path := range walker {
- name := filepath.Base(path)
- err := conn.Upload(conn.WIPStorageId(), bookname + "/" + name, path)
+ filenum := 0
+ for _, file := range files {
+ if file.IsDir() {
+ continue
+ }
+ origname := file.Name()
+ origsuffix := filepath.Ext(origname)
+ origbase := strings.TrimSuffix(origname, origsuffix)
+ origpath := filepath.Join(dir, origname)
+
+ newname := fmt.Sprintf("%s_%04d%s", origbase, filenum, origsuffix)
+ err = conn.Upload(conn.WIPStorageId(), filepath.Join(bookname, newname), origpath)
if err != nil {
- return fmt.Errorf("Failed to upload %s: %v", path, err)
+ return fmt.Errorf("Failed to upload %s: %v", origpath, err)
}
+
+ filenum++
}
return nil