diff options
author | Nick White <git@njw.name> | 2020-12-07 16:53:58 +0000 |
---|---|---|
committer | Nick White <git@njw.name> | 2020-12-07 16:53:58 +0000 |
commit | 068ad0b666705a49ab22d7b48cd6a7d67b37f234 (patch) | |
tree | 36a422929c7d53f49a0f549fc4781e99b1d9423d /internal | |
parent | 4fcbfba65689dc5e8ad46ba467343d3da376d92a (diff) |
[rescribe] Allow saving of results to somewhere other than a directory named after the book being processed
Diffstat (limited to 'internal')
-rw-r--r-- | internal/pipeline/get.go | 53 |
1 files changed, 30 insertions, 23 deletions
diff --git a/internal/pipeline/get.go b/internal/pipeline/get.go index 6949062..6c5b92c 100644 --- a/internal/pipeline/get.go +++ b/internal/pipeline/get.go @@ -12,9 +12,10 @@ import ( "strings" ) -func DownloadBestPages(name string, conn Pipeliner, pluspngs bool) error { - fn := filepath.Join(name, "best") - err := conn.Download(conn.WIPStorageId(), fn, fn) +func DownloadBestPages(dir string, name string, conn Pipeliner, pluspngs bool) error { + key := filepath.Join(name, "best") + fn := filepath.Join(dir, "best") + err := conn.Download(conn.WIPStorageId(), key, fn) if err != nil { return fmt.Errorf("Failed to download 'best' file: %v", err) } @@ -26,11 +27,12 @@ func DownloadBestPages(name string, conn Pipeliner, pluspngs bool) error { s := bufio.NewScanner(f) for s.Scan() { - fn = filepath.Join(name, s.Text()) - conn.Log("Downloading file", fn) - err = conn.Download(conn.WIPStorageId(), fn, fn) + key = filepath.Join(name, s.Text()) + fn = filepath.Join(dir, s.Text()) + conn.Log("Downloading file", key) + err = conn.Download(conn.WIPStorageId(), key, fn) if err != nil { - return fmt.Errorf("Failed to download file %s: %v", fn, err) + return fmt.Errorf("Failed to download file %s: %v", key, err) } } @@ -40,49 +42,54 @@ func DownloadBestPages(name string, conn Pipeliner, pluspngs bool) error { s = bufio.NewScanner(f) for s.Scan() { - txtfn := filepath.Join(name, s.Text()) - fn = strings.Replace(txtfn, ".hocr", ".png", 1) - conn.Log("Downloading file", fn) - err = conn.Download(conn.WIPStorageId(), fn, fn) + imgname := strings.Replace(s.Text(), ".hocr", ".png", 1) + key = filepath.Join(name, imgname) + fn = filepath.Join(dir, imgname) + conn.Log("Downloading file", key) + err = conn.Download(conn.WIPStorageId(), key, fn) if err != nil { - return fmt.Errorf("Failed to download file", fn, err) + return fmt.Errorf("Failed to download file %s: %v", key, err) } } return nil } -func DownloadPdfs(name string, conn Pipeliner) error { +func DownloadPdfs(dir string, name string, conn Pipeliner) error { for _, suffix := range []string{".colour.pdf", ".binarised.pdf"} { - fn := filepath.Join(name, name+suffix) - err := conn.Download(conn.WIPStorageId(), fn, fn) + key := filepath.Join(name, name+suffix) + fn := filepath.Join(dir, name+suffix) + err := conn.Download(conn.WIPStorageId(), key, fn) if err != nil { - return fmt.Errorf("Failed to download PDF %s: %v", fn, err) + return fmt.Errorf("Failed to download PDF %s: %v", key, err) } } return nil } -func DownloadAnalyses(name string, conn Pipeliner) error { +func DownloadAnalyses(dir string, name string, conn Pipeliner) error { for _, a := range []string{"conf", "graph.png"} { - fn := filepath.Join(name, a) - err := conn.Download(conn.WIPStorageId(), fn, fn) + key := filepath.Join(name, a) + fn := filepath.Join(dir, a) + err := conn.Download(conn.WIPStorageId(), key, fn) if err != nil { - return fmt.Errorf("Failed to download analysis file %s: %v", fn, err) + return fmt.Errorf("Failed to download analysis file %s: %v", key, err) } } return nil } -func DownloadAll(name string, conn Pipeliner) error { +func DownloadAll(dir string, name string, conn Pipeliner) error { objs, err := conn.ListObjects(conn.WIPStorageId(), name) if err != nil { return fmt.Errorf("Failed to get list of files for book", name, err) } for _, i := range objs { + base := filepath.Base(i) + fn := filepath.Join(dir, base) conn.Log("Downloading", i) - err = conn.Download(conn.WIPStorageId(), i, i) + err = conn.Download(conn.WIPStorageId(), i, fn) if err != nil { - return fmt.Errorf("Failed to download file", i, err) + return fmt.Errorf("Failed to download file %s: %v", i, err) } } return nil |