photoprism/pkg/fs/case.go

29 lines
622 B
Go
Raw Normal View History

package fs
import (
"fmt"
"os"
"path/filepath"
)
// CaseInsensitive tests if a storage path is case-insensitive.
func CaseInsensitive(storagePath string) (result bool, err error) {
tmpName := filepath.Join(storagePath, "caseTest.tmp")
if err := os.WriteFile(tmpName, []byte("{}"), 0666); err != nil {
return false, fmt.Errorf("%s not writable", filepath.Base(storagePath))
}
defer os.Remove(tmpName)
result = FileExists(filepath.Join(storagePath, "CASETEST.TMP"))
return result, err
}
// IgnoreCase enables the case-insensitive mode.
func IgnoreCase() {
ignoreCase = true
TypeExt = FileExt.TypeExt()
}