package sysfs
import (
"fmt"
"io/fs"
"path"
experimentalsys "github.com/tetratelabs/wazero/experimental/sys"
"github.com/tetratelabs/wazero/sys"
)
type AdaptFS struct {
FS fs .FS
}
func (a *AdaptFS ) String () string {
return fmt .Sprintf ("%v" , a .FS )
}
func (a *AdaptFS ) OpenFile (path string , flag experimentalsys .Oflag , perm fs .FileMode ) (experimentalsys .File , experimentalsys .Errno ) {
return OpenFSFile (a .FS , cleanPath (path ), flag , perm )
}
func (a *AdaptFS ) Lstat (path string ) (sys .Stat_t , experimentalsys .Errno ) {
return a .Stat (path )
}
func (a *AdaptFS ) Stat (path string ) (sys .Stat_t , experimentalsys .Errno ) {
f , errno := a .OpenFile (path , experimentalsys .O_RDONLY , 0 )
if errno != 0 {
return sys .Stat_t {}, errno
}
defer f .Close ()
return f .Stat ()
}
func (a *AdaptFS ) Readlink (string ) (string , experimentalsys .Errno ) {
return "" , experimentalsys .ENOSYS
}
func (a *AdaptFS ) Mkdir (string , fs .FileMode ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Chmod (string , fs .FileMode ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Rename (string , string ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Rmdir (string ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Link (string , string ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Symlink (string , string ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Unlink (string ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func (a *AdaptFS ) Utimens (string , int64 , int64 ) experimentalsys .Errno {
return experimentalsys .ENOSYS
}
func cleanPath(name string ) string {
if len (name ) == 0 {
return name
}
cleaned := name
if name [0 ] == '/' {
cleaned = name [1 :]
}
cleaned = path .Clean (cleaned )
return cleaned
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .