From 41504f2ea144e8cc56092a3bbbd3ced3f1278ad1 Mon Sep 17 00:00:00 2001 From: MrLetsplay Date: Sun, 24 Sep 2023 22:13:16 +0200 Subject: [PATCH] Allow multiple directories, Rename module --- .gitignore | 2 +- go.mod | 2 +- main.go | 84 ++++++++++++++++++++++++++++-------------------------- 3 files changed, 45 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index 3320536..7879260 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -pdf +PDFIndexer index.json diff --git a/go.mod b/go.mod index 181cf05..e60ce57 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module cringe-studios.com/pdf +module git.cringe-studios.com/CringeStudios/PDFIndexer go 1.20 diff --git a/main.go b/main.go index 8e3f955..89463d4 100644 --- a/main.go +++ b/main.go @@ -13,55 +13,57 @@ import ( "code.sajari.com/docconv" ) -var fileFormats = []string{".pdf", ".jpg", ".png", ".txt", ".docx", ".doc", ".tif"} +var fileFormats = []string{".pdf", ".jpg", ".png", ".txt", ".docx", ".doc", ".tif", "tiff"} -func buildIndex(dir string, old map[string]string) (map[string]string, error) { +func buildIndex(dirs []string, old map[string]string) (map[string]string, error) { var index = old if index == nil { index = make(map[string]string) } - err := filepath.Walk(dir, func(path string, info fs.FileInfo, err error) error { - if err != nil { - return err - } - - if info.IsDir() { - return nil - } - - supportedType := false - for _, suffix := range fileFormats { - if strings.HasSuffix(strings.ToLower(path), suffix) { - supportedType = true - break + for _, dir := range dirs { + err := filepath.Walk(dir, func(path string, info fs.FileInfo, err error) error { + if err != nil { + return err } - } - if !supportedType { + if info.IsDir() { + return nil + } + + supportedType := false + for _, suffix := range fileFormats { + if strings.HasSuffix(strings.ToLower(path), suffix) { + supportedType = true + break + } + } + + if !supportedType { + return nil + } + + _, exists := index[path] + if exists { + return nil + } + + log.Println(path) + + str, err := docconv.ConvertPath(path) + if err != nil { + log.Println("Fail:", err) + return nil + } + + index[path] = str.Body return nil - } + }) - _, exists := index[path] - if exists { - return nil - } - - log.Println(path) - - str, err := docconv.ConvertPath(path) if err != nil { - log.Println("Fail:", err) - return nil + return nil, err } - - index[path] = str.Body - return nil - }) - - if err != nil { - return nil, err } return index, nil @@ -72,13 +74,13 @@ func main() { flag.Parse() - if len(flag.Args()) != 2 { - fmt.Println("Usage:", os.Args[0], " ") + if len(flag.Args()) < 2 { + fmt.Println("Usage:", os.Args[0], " [directories...]") os.Exit(1) } - directory := flag.Arg(0) - indexFile := flag.Arg(1) + indexFile := flag.Arg(0) + directories := flag.Args()[1:] var oldIndex = make(map[string]string) if !*force { @@ -97,7 +99,7 @@ func main() { } } - index, err := buildIndex(directory, oldIndex) + index, err := buildIndex(directories, oldIndex) if err != nil { log.Panicln(err) }