mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-29 23:22:45 +00:00
34 lines
842 B
Go
34 lines
842 B
Go
|
package osutil
|
||
|
|
||
|
import (
|
||
|
"io/fs"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
// FS implements [fs.FS], [fs.StatFS], and [fs.ReadFileFS]
|
||
|
// using package [os].
|
||
|
//
|
||
|
// This filesystem does not respect [fs.ValidPath] rules,
|
||
|
// and fails [testing/fstest.TestFS]!
|
||
|
//
|
||
|
// Still, it can be a useful tool to unify implementations
|
||
|
// that can access either the [os] filesystem or an [fs.FS].
|
||
|
// It's OK to use this to open files, but you should avoid
|
||
|
// opening directories, resolving paths, or walking the file system.
|
||
|
type FS struct{}
|
||
|
|
||
|
// Open implements [fs.FS].
|
||
|
func (FS) Open(name string) (fs.File, error) {
|
||
|
return OpenFile(name, os.O_RDONLY, 0)
|
||
|
}
|
||
|
|
||
|
// ReadFileFS implements [fs.StatFS].
|
||
|
func (FS) Stat(name string) (fs.FileInfo, error) {
|
||
|
return os.Stat(name)
|
||
|
}
|
||
|
|
||
|
// ReadFile implements [fs.ReadFileFS].
|
||
|
func (FS) ReadFile(name string) ([]byte, error) {
|
||
|
return os.ReadFile(name)
|
||
|
}
|