Skip to content

Commit

Permalink
fix logger path bug (#5836)
Browse files Browse the repository at this point in the history
  • Loading branch information
kvii committed Nov 5, 2022
1 parent fb640cf commit 871f1de
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 2 deletions.
15 changes: 13 additions & 2 deletions utils/utils.go
Expand Up @@ -3,8 +3,8 @@ package utils
import (
"database/sql/driver"
"fmt"
"path/filepath"
"reflect"
"regexp"
"runtime"
"strconv"
"strings"
Expand All @@ -16,7 +16,18 @@ var gormSourceDir string
func init() {
_, file, _, _ := runtime.Caller(0)
// compatible solution to get gorm source directory with various operating systems
gormSourceDir = regexp.MustCompile(`gorm.utils.utils\.go`).ReplaceAllString(file, "")
gormSourceDir = sourceDir(file)
}

func sourceDir(file string) string {
dir := filepath.Dir(file)
dir = filepath.Dir(dir)

s := filepath.Dir(dir)
if filepath.Base(s) != "gorm.io" {
s = dir
}
return s + string(filepath.Separator)
}

// FileWithLineNum return the file name and line number of the current file
Expand Down
33 changes: 33 additions & 0 deletions utils/utils_unix_test.go
@@ -0,0 +1,33 @@
package utils

import "testing"

func TestSourceDir(t *testing.T) {
cases := []struct {
file string
want string
}{
{
file: "/Users/name/go/pkg/mod/gorm.io/gorm@v1.2.3/utils/utils.go",
want: "/Users/name/go/pkg/mod/gorm.io/",
},
{
file: "/go/work/proj/gorm/utils/utils.go",
want: "/go/work/proj/gorm/",
},
{
file: "/go/work/proj/gorm_alias/utils/utils.go",
want: "/go/work/proj/gorm_alias/",
},
{
file: "/go/work/proj/my.gorm.io/gorm@v1.2.3/utils/utils.go",
want: "/go/work/proj/my.gorm.io/gorm@v1.2.3/",
},
}
for _, c := range cases {
s := sourceDir(c.file)
if s != c.want {
t.Fatalf("%s: expected %s, got %s", c.file, c.want, s)
}
}
}
33 changes: 33 additions & 0 deletions utils/utils_windows_test.go
@@ -0,0 +1,33 @@
package utils

import "testing"

func TestSourceDir(t *testing.T) {
cases := []struct {
file string
want string
}{
{
file: `C:\Users\name\go\pkg\mod\gorm.io\gorm@v1.20.8\utils\utils.go`,
want: `C:\Users\name\go\pkg\mod\gorm.io`,
},
{
file: `C:\go\work\proj\gorm\utils\utils.go`,
want: `C:\go\work\proj\gorm`,
},
{
file: `C:\go\work\proj\gorm_alias\utils\utils.go`,
want: `C:\go\work\proj\gorm_alias`,
},
{
file: `C:\go\work\proj\my.gorm.io\gorm\utils\utils.go`,
want: `C:\go\work\proj\my.gorm.io\gorm`,
},
}
for _, c := range cases {
s := sourceDir(c.file)
if s != c.want {
t.Fatalf("%s: expected %s, got %s", c.file, c.want, s)
}
}
}

0 comments on commit 871f1de

Please sign in to comment.