cmd
This commit is contained in:
41
cmd/mesh/9p.go
Normal file
41
cmd/mesh/9p.go
Normal file
@@ -0,0 +1,41 @@
|
||||
//go:build ignore
|
||||
|
||||
package main
|
||||
|
||||
func ListenAndServe(addr string, filesystem fs.FS) error {
|
||||
styx.HandlerFunc(func(s *styx.Session) {
|
||||
for s.Next() {
|
||||
switch msg := s.Request.(type) {
|
||||
case styx.Twalk:
|
||||
msg.Rwalk(fs.Stat(filesystem, msg.Path()))
|
||||
case styx.Topen:
|
||||
msg.Ropen(filesystem.Open(msg.Path()))
|
||||
case styx.Tstat:
|
||||
msg.Rstat(fs.Stat(filesystem, msg.Path()))
|
||||
}
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
type FS struct {
|
||||
meshFile
|
||||
}
|
||||
|
||||
type meshFile struct {
|
||||
}
|
||||
|
||||
type meshFileInfo struct {
|
||||
bufio.Reader
|
||||
time.Time
|
||||
}
|
||||
|
||||
func (f meshFileInfo) Name() string { return "mesh" }
|
||||
func (f meshFileInfo) Size() int64 { return f.Reader.Size() }
|
||||
func (f meshFileInfo) Mode() fs.FileMode { return fs.ModePerm }
|
||||
func (f meshFileInfo) ModTime() time.Time { return f.Time }
|
||||
func (f meshFileInfo) IsDir() bool { return false }
|
||||
func (f meshFileInfo) Sys() any { return nil }
|
||||
|
||||
func (f meshFile) Stat() (fs.FileInfo, error) {
|
||||
}
|
||||
Reference in New Issue
Block a user