44f7700c0c
* Backend: Enable Go module graph pruning and lazy module loading This commit applies the changes by running `go mod tidy -go=1.17` to enable module graph pruning and lazy module loading supported by Go 1.17 or higher. Signed-off-by: Eng Zer Jun <engzerjun@gmail.com> * Backend: Move from io/ioutil to io and os package The io/ioutil package has been deprecated as of Go 1.16, see https://golang.org/doc/go1.16#ioutil. This commit replaces the existing io/ioutil functions with their new definitions in io and os packages. Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
28 lines
622 B
Go
28 lines
622 B
Go
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()
|
|
}
|