v1.0.8 filename length limit

This commit is contained in:
zomo
2025-08-26 12:04:24 -05:00
parent c6956fe3d9
commit ca76fea1da
5 changed files with 41 additions and 4 deletions

37
main.go
View File

@@ -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)
}