From 6347e7a31ca660964d68723f771fa2d0e0d7963a Mon Sep 17 00:00:00 2001 From: opennota Date: Tue, 5 Aug 2014 19:23:20 +0700 Subject: [PATCH] Accept individual files as parameters --- config.go | 6 +----- convert.go | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/config.go b/config.go index 0697c44..2b05389 100644 --- a/config.go +++ b/config.go @@ -151,14 +151,10 @@ func (c *Config) validate() error { } for _, input := range c.Input { - stat, err := os.Lstat(input.Path) + _, err := os.Lstat(input.Path) if err != nil { return fmt.Errorf("Failed to stat input path '%s': %v", input.Path, err) } - - if !stat.IsDir() { - return fmt.Errorf("Input path '%s' is not a directory.", input.Path) - } } if len(c.Output) == 0 { diff --git a/convert.go b/convert.go index 94f46fe..d779dc0 100644 --- a/convert.go +++ b/convert.go @@ -89,16 +89,28 @@ func findFiles(dir, prefix string, recursive bool, toc *[]Asset, ignore []*regex prefix = filepath.ToSlash(prefix) } - fd, err := os.Open(dir) + fi, err := os.Stat(dir) if err != nil { return err } - defer fd.Close() + var list []os.FileInfo - list, err := fd.Readdir(0) - if err != nil { - return err + if !fi.IsDir() { + dir = "" + list = []os.FileInfo{fi} + } else { + fd, err := os.Open(dir) + if err != nil { + return err + } + + defer fd.Close() + + list, err = fd.Readdir(0) + if err != nil { + return err + } } for _, file := range list {