v1.0.8 filename length limit
This commit is contained in:
37
main.go
37
main.go
@@ -9,6 +9,7 @@ import (
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
"text/template"
|
||||
"time"
|
||||
@@ -151,9 +152,37 @@ func testEnv() error {
|
||||
return errors.New("missing LIBRARY_NOTAGS_ROOT")
|
||||
}
|
||||
|
||||
if !testEnvFilenameLimit() {
|
||||
return errors.New("unable to parse FILENAME_LIMIT")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func testEnvFilenameLimit() bool {
|
||||
limit, ok := os.LookupEnv("FILENAME_LIMIT")
|
||||
if !ok {
|
||||
return true
|
||||
}
|
||||
_, err := strconv.Atoi(limit)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func getEnvFilenameLimit() int {
|
||||
limit, ok := os.LookupEnv("FILENAME_LIMIT")
|
||||
if !ok {
|
||||
return 255
|
||||
}
|
||||
limit_i, err := strconv.Atoi(limit)
|
||||
if err != nil {
|
||||
return 255
|
||||
}
|
||||
return limit_i
|
||||
}
|
||||
|
||||
func getTagsInDir(directory string) (tag.Metadata, error) {
|
||||
files, err := os.ReadDir(directory)
|
||||
if err != nil {
|
||||
@@ -356,7 +385,13 @@ func doMoveTagged(filePath string, fileTags tag.Metadata) error {
|
||||
return err
|
||||
}
|
||||
|
||||
libFile := path.Join(libRoot, bufPath.String(), bufFile.String() + fileExt)
|
||||
filenameLimit := getEnvFilenameLimit() - len(fileExt)
|
||||
filename := bufFile.String()
|
||||
if len(filename) > filenameLimit {
|
||||
filename = filename[:filenameLimit]
|
||||
}
|
||||
|
||||
libFile := path.Join(libRoot, bufPath.String(), filename + fileExt)
|
||||
|
||||
return move(filePath, libFile)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user