|
@@ -1,8 +1,8 @@
|
|
|
package vessel
|
|
|
|
|
|
import (
|
|
|
- "net/http"
|
|
|
"io/fs"
|
|
|
+ "net/http"
|
|
|
"os"
|
|
|
)
|
|
|
|
|
@@ -27,8 +27,7 @@ func (f *OverlayFS) Append(fs http.FileSystem) {
|
|
|
|
|
|
// Open implements http.FileSystem
|
|
|
func (f *OverlayFS) Open(name string) (http.File, error) {
|
|
|
- dir := &OverlayDir{
|
|
|
- }
|
|
|
+ dir := &OverlayDir{}
|
|
|
|
|
|
for _, source := range f.search {
|
|
|
file, err := source.Open(name)
|
|
@@ -38,7 +37,7 @@ func (f *OverlayFS) Open(name string) (http.File, error) {
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
- if ! s.IsDir() {
|
|
|
+ if !s.IsDir() {
|
|
|
return file, nil
|
|
|
}
|
|
|
|
|
@@ -53,17 +52,17 @@ func (f *OverlayFS) Open(name string) (http.File, error) {
|
|
|
return nil, os.ErrNotExist
|
|
|
}
|
|
|
|
|
|
-
|
|
|
type OverlayDir struct {
|
|
|
files []http.File
|
|
|
}
|
|
|
|
|
|
-func (f *OverlayDir) Readdir(count int) ([]fs.FileInfo, error) {
|
|
|
+// Readdir implements http.FileSystem Readdir
|
|
|
+func (f *OverlayDir) Readdir(count int) ([]fs.FileInfo, error) {
|
|
|
// for read dir we need all of the content
|
|
|
content := make(map[string]fs.FileInfo)
|
|
|
|
|
|
for _, dir := range f.files {
|
|
|
- list,err := dir.Readdir(count)
|
|
|
+ list, err := dir.Readdir(count)
|
|
|
if err != nil {
|
|
|
continue
|
|
|
}
|
|
@@ -76,7 +75,7 @@ func (f *OverlayDir) Readdir(count int) ([]fs.FileInfo, error) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- files := make([]fs.FileInfo,0, count)
|
|
|
+ files := make([]fs.FileInfo, 0, count)
|
|
|
for k := range content {
|
|
|
files = append(files, content[k])
|
|
|
}
|
|
@@ -88,18 +87,22 @@ func (f *OverlayDir) Readdir(count int) ([]fs.FileInfo, error) {
|
|
|
return files, nil
|
|
|
}
|
|
|
|
|
|
-func (f *OverlayDir) Stat() (fs.FileInfo, error) {
|
|
|
+// Stat implements http.FileSystem Stat
|
|
|
+func (f *OverlayDir) Stat() (fs.FileInfo, error) {
|
|
|
return f.files[0].Stat()
|
|
|
}
|
|
|
|
|
|
-func (f *OverlayDir) Seek(offset int64, whence int) (int64, error) {
|
|
|
+// Seek implements http.FileSystem Seek
|
|
|
+func (f *OverlayDir) Seek(offset int64, whence int) (int64, error) {
|
|
|
return f.files[0].Seek(offset, whence)
|
|
|
}
|
|
|
|
|
|
-func (f *OverlayDir) Read(p []byte) (n int, err error) {
|
|
|
+// Read implements http.FileSystem Read
|
|
|
+func (f *OverlayDir) Read(p []byte) (n int, err error) {
|
|
|
return f.files[0].Read(p)
|
|
|
}
|
|
|
|
|
|
-func (f *OverlayDir) Close() error {
|
|
|
+// Close implements http.FileSystem Close
|
|
|
+func (f *OverlayDir) Close() error {
|
|
|
return f.files[0].Close()
|
|
|
-}
|
|
|
+}
|