@@ -15,8 +15,8 @@ import (
1515 "github.com/gobuffalo/packd"
1616 "github.com/gobuffalo/packr/v2/file"
1717 "github.com/gobuffalo/packr/v2/file/resolver"
18- "github.com/gobuffalo/packr/v2/plog"
1918 "github.com/gobuffalo/packr/v2/internal/takeon/github.com/markbates/oncer"
19+ "github.com/gobuffalo/packr/v2/plog"
2020)
2121
2222var _ packd.Box = & Box {}
@@ -28,12 +28,12 @@ var _ packd.Finder = &Box{}
2828// Box represent a folder on a disk you want to
2929// have access to in the built Go binary.
3030type Box struct {
31- Path string `json:"path"`
32- Name string `json:"name"`
33- ResolutionDir string `json:"resolution_dir"`
34- DefaultResolver resolver.Resolver `json:"default_resolver"`
35- resolvers resolversMap
36- dirs dirsMap
31+ Path string `json:"path"`
32+ Name string `json:"name"`
33+ ResolutionDir string `json:"resolution_dir"`
34+ DefaultResolver resolver.Resolver `json:"default_resolver"`
35+ resolvers resolversMap
36+ dirs dirsMap
3737}
3838
3939// NewBox returns a Box that can be used to
@@ -125,16 +125,16 @@ func (b *Box) Has(name string) bool {
125125
126126// HasDir returns true if the directory exists in the box
127127func (b * Box ) HasDir (name string ) bool {
128+ if name == "/" {
129+ return b .Has ("index.html" )
130+ }
128131 oncer .Do ("packr2/box/HasDir" + b .Name , func () {
129132 for _ , f := range b .List () {
130133 for d := filepath .Dir (f ); d != "." ; d = filepath .Dir (d ) {
131134 b .dirs .Store (d , true )
132135 }
133136 }
134137 })
135- if name == "/" {
136- return b .Has ("index.html" )
137- }
138138 _ , ok := b .dirs .Load (name )
139139 return ok
140140}
@@ -149,7 +149,13 @@ func (b *Box) Open(name string) (http.File, error) {
149149 }
150150 return f , err
151151 }
152- f , err = file .NewFileR (name , f )
152+ info , err := f .FileInfo ()
153+ if err != nil {
154+ return f , err
155+ }
156+ if ! info .IsDir () {
157+ f , err = file .NewFileR (name , f )
158+ }
153159 plog .Debug (b , "Open" , "name" , f .Name (), "file" , f .Name ())
154160 return f , err
155161}
0 commit comments