Check that fs is case-sensitive
This commit is contained in:
parent
d5ea97c532
commit
e2e0dad1ad
41
main.go
41
main.go
@ -11,6 +11,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"os/user"
|
"os/user"
|
||||||
|
"path/filepath"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
@ -92,6 +93,37 @@ func (lw *LevelWriter) WriteLevel(l zerolog.Level, p []byte) (n int, err error)
|
|||||||
return len(p), nil
|
return len(p), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isFsCaseInsensitive(dir string) (yes bool, err error) {
|
||||||
|
pathLowercase := filepath.Join(dir, "file")
|
||||||
|
fLowercase, err := os.Create(pathLowercase)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer fLowercase.Close()
|
||||||
|
defer os.Remove(pathLowercase)
|
||||||
|
|
||||||
|
pathUppercase := filepath.Join(dir, "FILE")
|
||||||
|
fUppercase, err := os.Create(pathUppercase)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer fUppercase.Close()
|
||||||
|
defer os.Remove(pathUppercase)
|
||||||
|
|
||||||
|
statLowercase, err := fLowercase.Stat()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
statUppercase, err := fUppercase.Stat()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
yes = os.SameFile(statLowercase, statUppercase)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var tempDirBase string
|
var tempDirBase string
|
||||||
|
|
||||||
var consoleWriter, fileWriter LevelWriter
|
var consoleWriter, fileWriter LevelWriter
|
||||||
@ -163,6 +195,15 @@ func main() {
|
|||||||
log.Debug().Msgf("%v", buildInfo.Settings)
|
log.Debug().Msgf("%v", buildInfo.Settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
path := filepath.Join(usr.HomeDir, ".out-of-tree")
|
||||||
|
yes, err := isFsCaseInsensitive(path)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal().Err(err).Msg(path)
|
||||||
|
}
|
||||||
|
if yes {
|
||||||
|
log.Warn().Msg("case-insensitive file system not supported")
|
||||||
|
}
|
||||||
|
|
||||||
_, err = exec.LookPath(cli.ContainerRuntime)
|
_, err = exec.LookPath(cli.ContainerRuntime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if cli.ContainerRuntime == "podman" { // default value
|
if cli.ContainerRuntime == "podman" { // default value
|
||||||
|
Loading…
Reference in New Issue
Block a user