2016-01-10 11:17:35 +00:00
|
|
|
package goldsmith
|
|
|
|
|
|
|
|
import "path/filepath"
|
|
|
|
|
|
|
|
type loader struct{}
|
|
|
|
|
2016-08-21 19:54:44 +00:00
|
|
|
func (*loader) Name() string {
|
|
|
|
return "loader"
|
|
|
|
}
|
|
|
|
|
2018-01-07 23:42:32 +00:00
|
|
|
func (*loader) Initialize(ctx Context) ([]Filter, error) {
|
2016-06-11 20:13:16 +00:00
|
|
|
infos := make(chan fileInfo)
|
|
|
|
go scanDir(ctx.SrcDir(), infos)
|
2016-01-10 11:17:35 +00:00
|
|
|
|
2016-06-11 20:13:16 +00:00
|
|
|
for info := range infos {
|
|
|
|
if info.IsDir() {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
|
|
|
relPath, _ := filepath.Rel(ctx.SrcDir(), info.path)
|
2016-06-11 23:24:06 +00:00
|
|
|
|
|
|
|
f := &file{
|
|
|
|
path: relPath,
|
|
|
|
Meta: make(map[string]interface{}),
|
|
|
|
modTime: info.ModTime(),
|
|
|
|
size: info.Size(),
|
|
|
|
asset: info.path,
|
|
|
|
}
|
|
|
|
|
2016-01-10 11:17:35 +00:00
|
|
|
ctx.DispatchFile(f)
|
|
|
|
}
|
|
|
|
|
2016-07-10 20:05:23 +00:00
|
|
|
return nil, nil
|
2016-01-10 11:17:35 +00:00
|
|
|
}
|