summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorLoyalsoldier <[email protected]>2024-08-06 03:38:55 +0800
committerLoyalsoldier <[email protected]>2024-08-06 03:38:55 +0800
commitee3687e191acbde3aabc13cf4f5dca93a3d80af5 (patch)
treee003915a4876ae9dc722fcbe56e9ec34714976b7 /plugin
parent873e3723c3a7126deb24b77a2dc350b2536de8de (diff)
Fix: walk logic of local file
Diffstat (limited to 'plugin')
-rw-r--r--plugin/plaintext/text_in.go35
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
}