diff --git a/v2/_fixtures/importPkg/importPkg.go b/v2/_fixtures/importPkg/importPkg.go new file mode 100644 index 0000000..8484abc --- /dev/null +++ b/v2/_fixtures/importPkg/importPkg.go @@ -0,0 +1,8 @@ +package importPkg + +import ( + "github.com/gobuffalo/packr/v2" +) + +var BoxTestNew = packr.New("pkg_test", "./pkg_test") +var BoxTestNewBox = packr.NewBox("./pkg_test") diff --git a/v2/_fixtures/importPkg/importPkg_test.go b/v2/_fixtures/importPkg/importPkg_test.go new file mode 100644 index 0000000..931e4a0 --- /dev/null +++ b/v2/_fixtures/importPkg/importPkg_test.go @@ -0,0 +1,21 @@ +package importPkg + +import ( + "github.com/gobuffalo/packr/v2" + "github.com/stretchr/testify/require" + "testing" +) + +func Test_NewBox(t *testing.T) { + r := require.New(t) + + box := packr.NewBox("./pkg_test") + r.Len(box.List(), 2) +} + +func Test_New(t *testing.T) { + r := require.New(t) + + box := packr.New("pkg_test", "./pkg_test") + r.Len(box.List(), 2) +} diff --git a/v2/_fixtures/importPkg/pkg_test/1.txt b/v2/_fixtures/importPkg/pkg_test/1.txt new file mode 100644 index 0000000..e69de29 diff --git a/v2/_fixtures/importPkg/pkg_test/2.txt b/v2/_fixtures/importPkg/pkg_test/2.txt new file mode 100644 index 0000000..e69de29 diff --git a/v2/box.go b/v2/box.go index 9088ae0..0953d53 100644 --- a/v2/box.go +++ b/v2/box.go @@ -39,37 +39,53 @@ func NewBox(path string) *Box { func resolutionDir(og string) string { ng, _ := filepath.Abs(og) - exists := func(s string) bool { - _, err := os.Stat(s) - if err != nil { - return false - } - plog.Debug("packr", "resolutionDir", "original", og, "resolved", s) - return true + if resolutionDirExists(ng, og) { + return ng } - if exists(ng) { + // packr.New + _, filename, _, _ := runtime.Caller(3) + ng, ok := resolutionDirTestFilename(filename, og) + if ok { return ng } - _, filename, _, _ := runtime.Caller(2) + // packr.NewBox (deprecated) + _, filename, _, _ = runtime.Caller(4) + ng, ok = resolutionDirTestFilename(filename, og) + if ok { + return ng + } - ng = filepath.Join(filepath.Dir(filename), og) + return og +} + +func resolutionDirExists(s, og string) bool { + _, err := os.Stat(s) + if err != nil { + return false + } + plog.Debug("packr", "resolutionDir", "original", og, "resolved", s) + return true +} + +func resolutionDirTestFilename(filename, og string) (string, bool) { + ng := filepath.Join(filepath.Dir(filename), og) // // this little hack courtesy of the `-cover` flag!! cov := filepath.Join("_test", "_obj_test") ng = strings.Replace(ng, string(filepath.Separator)+cov, "", 1) - if exists(ng) { - return ng + if resolutionDirExists(ng, og) { + return ng, true } ng = filepath.Join(envy.GoPath(), "src", ng) - if exists(ng) { - return ng + if resolutionDirExists(ng, og) { + return ng, true } - return og + return og, false } func construct(name string, path string) *Box { diff --git a/v2/box_import_test.go b/v2/box_import_test.go new file mode 100644 index 0000000..5b09625 --- /dev/null +++ b/v2/box_import_test.go @@ -0,0 +1,15 @@ +package packr_test + +import ( + "github.com/gobuffalo/packr/v2/_fixtures/importPkg" + "github.com/stretchr/testify/require" + "testing" +) + +func Test_ImportWithBox(t *testing.T) { + r := require.New(t) + + r.Len(importPkg.BoxTestNew.List(), 2) + + r.Len(importPkg.BoxTestNewBox.List(), 2) +} diff --git a/v2/travis.sh b/v2/travis.sh index ad511a2..99612f2 100755 --- a/v2/travis.sh +++ b/v2/travis.sh @@ -5,3 +5,5 @@ go install -v ./packr2 packr2 -v clean packr2 -v go test -v -timeout=5s -race ./... +packr2 -v clean +go test -v -timeout=5s -race ./...