build: resolve 8.3 filename format to long one on Windows

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2024-01-25 11:58:47 +01:00
committed by CrazyMax
parent eabbee797b
commit fb2c62a038
9 changed files with 57 additions and 11 deletions

View File

@ -70,7 +70,7 @@ func (c *Git) RootDir() (string, error) {
if err != nil {
return "", err
}
return sanitizePath(root), nil
return SanitizePath(root), nil
}
func (c *Git) GitDir() (string, error) {

View File

@ -45,7 +45,7 @@ func gitPath(wd string) (string, error) {
var windowsPathRegex = regexp.MustCompile(`^[A-Za-z]:[\\/].*$`)
func sanitizePath(path string) string {
func SanitizePath(path string) string {
// If we're running in WSL, we need to convert Windows paths to Unix paths.
// This is because the git binary can be invoked through `git.exe` and
// therefore returns Windows paths.

View File

@ -10,10 +10,10 @@ import (
)
func TestSanitizePathUnix(t *testing.T) {
assert.Equal(t, "/home/foobar", sanitizePath("/home/foobar"))
assert.Equal(t, "/home/foobar", SanitizePath("/home/foobar"))
}
func TestSanitizePathWSL(t *testing.T) {
t.Setenv("WSL_DISTRO_NAME", "Ubuntu")
assert.Equal(t, "/mnt/c/Users/foobar", sanitizePath("C:\\Users\\foobar"))
assert.Equal(t, "/mnt/c/Users/foobar", SanitizePath("C:\\Users\\foobar"))
}

View File

@ -9,6 +9,6 @@ func gitPath(wd string) (string, error) {
return exec.LookPath("git.exe")
}
func sanitizePath(path string) string {
func SanitizePath(path string) string {
return filepath.ToSlash(filepath.Clean(path))
}

View File

@ -7,5 +7,5 @@ import (
)
func TestSanitizePathWindows(t *testing.T) {
assert.Equal(t, "C:\\Users\\foobar", sanitizePath("C:/Users/foobar"))
assert.Equal(t, "C:\\Users\\foobar", SanitizePath("C:/Users/foobar"))
}