Skip to content

Commit bb59b3d

Browse files
committed
chore: stub out FileInfo implementation for photofs
1 parent abcf67d commit bb59b3d

File tree

1 file changed

+83
-21
lines changed

1 file changed

+83
-21
lines changed

SushitrainCore/src/photofs.go

Lines changed: 83 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@ type PhotoFilesystem struct {
1414
}
1515

1616
type PhotoFile struct {
17+
name string
18+
}
19+
20+
type PhotoFileInfo struct {
21+
file *PhotoFile
1722
}
1823

19-
var PhotoFilesystemType fs.FilesystemType = "sushitrain.photos.v1"
20-
var notImplementedErr = errors.New("not implemented by photo filesystem")
2124
var _ fs.Filesystem = PhotoFilesystem{}
2225
var _ fs.File = PhotoFile{}
26+
var _ fs.FileInfo = PhotoFileInfo{}
27+
28+
var PhotoFilesystemType fs.FilesystemType = "sushitrain.photos.v1"
29+
var errNotImplemented = errors.New("not implemented by photo filesystem")
2330

2431
func init() {
2532
fs.RegisterFilesystemType(PhotoFilesystemType, func(uri string, _opts ...fs.Option) (fs.Filesystem, error) {
@@ -83,7 +90,7 @@ func (p PhotoFilesystem) PlatformData(name string, withOwnership bool, withXattr
8390
}
8491

8592
func (p PhotoFilesystem) ReadSymlink(name string) (string, error) {
86-
return "", notImplementedErr
93+
return "", errNotImplemented
8794
}
8895

8996
func (p PhotoFilesystem) Type() fs.FilesystemType {
@@ -105,59 +112,59 @@ func (p PhotoFilesystem) Underlying() (fs.Filesystem, bool) {
105112

106113
// Unimplemented parts of the Filesystem interface return an error. They should not normally be called
107114
func (p PhotoFilesystem) Chmod(name string, mode fs.FileMode) error {
108-
return notImplementedErr
115+
return errNotImplemented
109116
}
110117

111118
func (p PhotoFilesystem) Chtimes(name string, atime time.Time, mtime time.Time) error {
112-
return notImplementedErr
119+
return errNotImplemented
113120
}
114121

115122
func (p PhotoFilesystem) Create(name string) (fs.File, error) {
116-
return nil, notImplementedErr
123+
return nil, errNotImplemented
117124
}
118125

119126
func (p PhotoFilesystem) CreateSymlink(target string, name string) error {
120-
return notImplementedErr
127+
return errNotImplemented
121128
}
122129

123130
func (p PhotoFilesystem) Hide(name string) error {
124-
return notImplementedErr
131+
return errNotImplemented
125132
}
126133

127134
func (p PhotoFilesystem) Lchown(name string, uid string, gid string) error {
128-
return notImplementedErr
135+
return errNotImplemented
129136
}
130137

131138
func (p PhotoFilesystem) Mkdir(name string, perm fs.FileMode) error {
132-
return notImplementedErr
139+
return errNotImplemented
133140
}
134141

135142
func (p PhotoFilesystem) MkdirAll(name string, perm fs.FileMode) error {
136-
return notImplementedErr
143+
return errNotImplemented
137144
}
138145

139146
func (p PhotoFilesystem) Remove(name string) error {
140-
return notImplementedErr
147+
return errNotImplemented
141148
}
142149

143150
func (p PhotoFilesystem) RemoveAll(name string) error {
144-
return notImplementedErr
151+
return errNotImplemented
145152
}
146153

147154
func (p PhotoFilesystem) Rename(oldname string, newname string) error {
148-
return notImplementedErr
155+
return errNotImplemented
149156
}
150157

151158
func (p PhotoFilesystem) SetXattr(path string, xattrs []protocol.Xattr, xattrFilter fs.XattrFilter) error {
152-
return notImplementedErr
159+
return errNotImplemented
153160
}
154161

155162
func (p PhotoFilesystem) Unhide(name string) error {
156-
return notImplementedErr
163+
return errNotImplemented
157164
}
158165

159166
func (p PhotoFilesystem) Watch(path string, ignore fs.Matcher, ctx context.Context, ignorePerms bool) (<-chan fs.Event, <-chan error, error) {
160-
return nil, nil, notImplementedErr
167+
return nil, nil, errNotImplemented
161168
}
162169

163170
// Photo file implementation
@@ -167,7 +174,7 @@ func (p PhotoFile) Close() error {
167174

168175
// Name implements fs.File.
169176
func (p PhotoFile) Name() string {
170-
panic("unimplemented")
177+
return p.name
171178
}
172179

173180
// Read implements fs.File.
@@ -187,6 +194,7 @@ func (p PhotoFile) Seek(offset int64, whence int) (int64, error) {
187194

188195
// Stat implements fs.File.
189196
func (p PhotoFile) Stat() (fs.FileInfo, error) {
197+
return PhotoFileInfo{file: &p}, nil
190198
panic("unimplemented")
191199
}
192200

@@ -197,13 +205,67 @@ func (p PhotoFile) Sync() error {
197205

198206
// Unimplemented parts of fs.File for PhotoFile return an error
199207
func (p PhotoFile) Truncate(size int64) error {
200-
return notImplementedErr
208+
return errNotImplemented
201209
}
202210

203211
func (PhotoFile) Write(p []byte) (n int, err error) {
204-
return 0, notImplementedErr
212+
return 0, errNotImplemented
205213
}
206214

207215
func (PhotoFile) WriteAt(p []byte, off int64) (n int, err error) {
208-
return 0, notImplementedErr
216+
return 0, errNotImplemented
217+
}
218+
219+
// PhotoFileInfo implementation
220+
func (p PhotoFileInfo) Group() int {
221+
return 0
222+
}
223+
224+
// InodeChangeTime implements fs.FileInfo.
225+
func (p PhotoFileInfo) InodeChangeTime() time.Time {
226+
panic("unimplemented")
227+
}
228+
229+
// IsDir implements fs.FileInfo.
230+
func (p PhotoFileInfo) IsDir() bool {
231+
panic("unimplemented")
232+
}
233+
234+
// IsRegular implements fs.FileInfo.
235+
func (p PhotoFileInfo) IsRegular() bool {
236+
panic("unimplemented")
237+
}
238+
239+
// We don't do symlinks
240+
func (p PhotoFileInfo) IsSymlink() bool {
241+
return false
242+
}
243+
244+
// ModTime implements fs.FileInfo.
245+
func (p PhotoFileInfo) ModTime() time.Time {
246+
panic("unimplemented")
247+
}
248+
249+
func (p PhotoFileInfo) Mode() fs.FileMode {
250+
if p.IsDir() {
251+
return 0555 // Read-only with execute bit to list dir
252+
}
253+
return 0444 // Read-only
254+
}
255+
256+
func (p PhotoFileInfo) Name() string {
257+
return p.file.name
258+
}
259+
260+
func (p PhotoFileInfo) Owner() int {
261+
return 0
262+
}
263+
264+
// Size implements fs.FileInfo.
265+
func (p PhotoFileInfo) Size() int64 {
266+
panic("unimplemented")
267+
}
268+
269+
func (p PhotoFileInfo) Sys() interface{} {
270+
return nil
209271
}

0 commit comments

Comments
 (0)