From 6db838907c64c28361e48017dfd2cb81b2ae66cd Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 18 Dec 2016 18:57:38 -0800 Subject: [PATCH] cleanup --- epwing.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/epwing.go b/epwing.go index 39b2c74..ae6aa32 100644 --- a/epwing.go +++ b/epwing.go @@ -24,6 +24,7 @@ package main import ( "encoding/json" + "io/ioutil" "os" "os/exec" "path/filepath" @@ -57,26 +58,27 @@ type epwingExtractor interface { getFontWide() map[int]string } -func epwingInvokeTool(inputPath string) (*epwingBook, error) { - baseDir := filepath.Dir(os.Args[0]) - toolPath := filepath.Join(baseDir, "bin", runtime.GOOS, "zero-epwing") - - data, err := exec.Command(toolPath, inputPath).Output() +func epwingExportDb(inputPath, outputDir, title string, pretty bool) error { + stat, err := os.Stat(inputPath) if err != nil { - return nil, err + return err + } + + var data []byte + if stat.IsDir() { + baseDir := filepath.Dir(os.Args[0]) + toolPath := filepath.Join(baseDir, "bin", runtime.GOOS, "zero-epwing") + data, err = exec.Command(toolPath, inputPath).Output() + } else { + data, err = ioutil.ReadFile(inputPath) + } + + if err != nil { + return err } var book epwingBook if err := json.Unmarshal(data, &book); err != nil { - return nil, err - } - - return &book, nil -} - -func epwingExportDb(inputPath, outputDir, title string, pretty bool) error { - book, err := epwingInvokeTool(inputPath) - if err != nil { return err }