diff options
Diffstat (limited to 'vendor/github.com/gobuffalo/packr/virtual_file.go')
-rw-r--r-- | vendor/github.com/gobuffalo/packr/virtual_file.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/github.com/gobuffalo/packr/virtual_file.go b/vendor/github.com/gobuffalo/packr/virtual_file.go new file mode 100644 index 0000000..955db8c --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/virtual_file.go @@ -0,0 +1,57 @@ +package packr + +import ( + "bytes" + "fmt" + "os" + "time" +) + +var virtualFileModTime = time.Now() +var _ File = virtualFile{} + +type virtualFile struct { + *bytes.Reader + Name string + info fileInfo +} + +func (f virtualFile) FileInfo() (os.FileInfo, error) { + return f.info, nil +} + +func (f virtualFile) Close() error { + return nil +} + +func (f virtualFile) Write(p []byte) (n int, err error) { + return 0, fmt.Errorf("not implemented") +} + +func (f virtualFile) Readdir(count int) ([]os.FileInfo, error) { + return []os.FileInfo{f.info}, nil +} + +func (f virtualFile) Stat() (os.FileInfo, error) { + return f.info, nil +} + +func newVirtualFile(name string, b []byte) File { + return virtualFile{ + Reader: bytes.NewReader(b), + Name: name, + info: fileInfo{ + Path: name, + Contents: b, + size: int64(len(b)), + modTime: virtualFileModTime, + }, + } +} + +func newVirtualDir(name string) File { + var b []byte + v := newVirtualFile(name, b).(virtualFile) + v.info.isDir = true + return v +} |