You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
842 B
33 lines
842 B
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) |
|
}
|
|
|