all: Convert folders to use filesystem abstraction
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4228
This commit is contained in:
committed by
Jakob Borg
parent
ab8c2fb5c7
commit
3d8b4a42b7
@@ -19,6 +19,7 @@ import (
|
||||
)
|
||||
|
||||
type infiniteFS struct {
|
||||
fs.Filesystem
|
||||
width int // number of files and directories per level
|
||||
depth int // number of tree levels to simulate
|
||||
filesize int64 // size of each file in bytes
|
||||
@@ -50,18 +51,6 @@ func (i infiniteFS) Open(name string) (fs.File, error) {
|
||||
return &fakeFile{name, i.filesize, 0}, nil
|
||||
}
|
||||
|
||||
func (infiniteFS) Chmod(name string, mode fs.FileMode) error { return errNotSupp }
|
||||
func (infiniteFS) Chtimes(name string, atime time.Time, mtime time.Time) error { return errNotSupp }
|
||||
func (infiniteFS) Create(name string) (fs.File, error) { return nil, errNotSupp }
|
||||
func (infiniteFS) CreateSymlink(name, target string) error { return errNotSupp }
|
||||
func (infiniteFS) Mkdir(name string, perm fs.FileMode) error { return errNotSupp }
|
||||
func (infiniteFS) ReadSymlink(name string) (string, error) { return "", errNotSupp }
|
||||
func (infiniteFS) Remove(name string) error { return errNotSupp }
|
||||
func (infiniteFS) Rename(oldname, newname string) error { return errNotSupp }
|
||||
func (infiniteFS) Stat(name string) (fs.FileInfo, error) { return nil, errNotSupp }
|
||||
func (infiniteFS) SymlinksSupported() bool { return false }
|
||||
func (infiniteFS) Walk(root string, walkFn fs.WalkFunc) error { return errNotSupp }
|
||||
|
||||
type fakeInfo struct {
|
||||
name string
|
||||
size int64
|
||||
@@ -71,7 +60,7 @@ func (f fakeInfo) Name() string { return f.name }
|
||||
func (f fakeInfo) Mode() fs.FileMode { return 0755 }
|
||||
func (f fakeInfo) Size() int64 { return f.size }
|
||||
func (f fakeInfo) ModTime() time.Time { return time.Unix(1234567890, 0) }
|
||||
func (f fakeInfo) IsDir() bool { return strings.Contains(filepath.Base(f.name), "dir") }
|
||||
func (f fakeInfo) IsDir() bool { return strings.Contains(filepath.Base(f.name), "dir") || f.name == "." }
|
||||
func (f fakeInfo) IsRegular() bool { return !f.IsDir() }
|
||||
func (f fakeInfo) IsSymlink() bool { return false }
|
||||
|
||||
@@ -81,6 +70,10 @@ type fakeFile struct {
|
||||
readOffset int64
|
||||
}
|
||||
|
||||
func (f *fakeFile) Name() string {
|
||||
return f.name
|
||||
}
|
||||
|
||||
func (f *fakeFile) Read(bs []byte) (int, error) {
|
||||
remaining := f.size - f.readOffset
|
||||
if remaining == 0 {
|
||||
@@ -98,6 +91,10 @@ func (f *fakeFile) Stat() (fs.FileInfo, error) {
|
||||
return fakeInfo{f.name, f.size}, nil
|
||||
}
|
||||
|
||||
func (f *fakeFile) WriteAt(bs []byte, offs int64) (int, error) { return 0, errNotSupp }
|
||||
func (f *fakeFile) Close() error { return nil }
|
||||
func (f *fakeFile) Truncate(size int64) error { return errNotSupp }
|
||||
func (f *fakeFile) Write([]byte) (int, error) { return 0, errNotSupp }
|
||||
func (f *fakeFile) WriteAt([]byte, int64) (int, error) { return 0, errNotSupp }
|
||||
func (f *fakeFile) Close() error { return nil }
|
||||
func (f *fakeFile) Truncate(size int64) error { return errNotSupp }
|
||||
func (f *fakeFile) ReadAt([]byte, int64) (int, error) { return 0, errNotSupp }
|
||||
func (f *fakeFile) Seek(int64, int) (int64, error) { return 0, errNotSupp }
|
||||
func (f *fakeFile) Sync() error { return nil }
|
||||
|
||||
Reference in New Issue
Block a user