diff options
| author | Loyalsoldier <[email protected]> | 2024-08-06 03:38:55 +0800 |
|---|---|---|
| committer | Loyalsoldier <[email protected]> | 2024-08-06 03:38:55 +0800 |
| commit | ee3687e191acbde3aabc13cf4f5dca93a3d80af5 (patch) | |
| tree | e003915a4876ae9dc722fcbe56e9ec34714976b7 | |
| parent | 873e3723c3a7126deb24b77a2dc350b2536de8de (diff) | |
Fix: walk logic of local file
| -rw-r--r-- | plugin/plaintext/text_in.go | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/plugin/plaintext/text_in.go b/plugin/plaintext/text_in.go index 0180e52c..6ebf15d9 100644 --- a/plugin/plaintext/text_in.go +++ b/plugin/plaintext/text_in.go @@ -147,28 +147,31 @@ func (t *textIn) walkDir(dir string, entries map[string]*lib.Entry) error { } func (t *textIn) walkLocalFile(path, name string, entries map[string]*lib.Entry) error { + entryName := "" name = strings.TrimSpace(name) - var filename string if name != "" { - filename = name + entryName = name } else { - filename = filepath.Base(path) - } + entryName = filepath.Base(path) - // check filename - if !regexp.MustCompile(`^[a-zA-Z0-9_.\-]+$`).MatchString(filename) { - return fmt.Errorf("filename %s cannot be entry name, please remove special characters in it", filename) - } - dotIndex := strings.LastIndex(filename, ".") - if dotIndex > 0 { - filename = filename[:dotIndex] + // check filename + if !regexp.MustCompile(`^[a-zA-Z0-9_.\-]+$`).MatchString(entryName) { + return fmt.Errorf("filename %s cannot be entry name, please remove special characters in it", entryName) + } + + // remove file extension but not hidden files of which filename starts with "." + dotIndex := strings.LastIndex(entryName, ".") + if dotIndex > 0 { + entryName = entryName[:dotIndex] + } } - if _, found := entries[filename]; found { - return fmt.Errorf("found duplicated file %s", filename) + entryName = strings.ToUpper(entryName) + if _, found := entries[entryName]; found { + return fmt.Errorf("found duplicated list %s", entryName) } - entry := lib.NewEntry(filename) + entry := lib.NewEntry(entryName) file, err := os.Open(path) if err != nil { return err @@ -178,7 +181,7 @@ func (t *textIn) walkLocalFile(path, name string, entries map[string]*lib.Entry) return err } - entries[filename] = entry + entries[entryName] = entry return nil } @@ -194,11 +197,13 @@ func (t *textIn) walkRemoteFile(url, name string, entries map[string]*lib.Entry) return fmt.Errorf("failed to get remote file %s, http status code %d", url, resp.StatusCode) } + name = strings.ToUpper(name) entry := lib.NewEntry(name) if err := t.scanFile(resp.Body, entry); err != nil { return err } entries[name] = entry + return nil } |
