mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-12 22:19:14 +00:00
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
// Package osutil implements operating system utilities.
|
|
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 os.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)
|
|
}
|
|
|
|
// OpenFile behaves the same as [os.OpenFile].
|
|
//
|
|
// Deprecated: use os.OpenFile instead.
|
|
func OpenFile(name string, flag int, perm fs.FileMode) (*os.File, error) {
|
|
return os.OpenFile(name, flag, perm)
|
|
}
|