commit dc65cf4dbc3aa623b7f8dc10a433e136c318ceb6
parent 7e476fe8667ecec0b93ca27f7a44402aaf6dcdcb
Author: Matsuda Kenji <info@mtkn.jp>
Date: Tue, 29 Aug 2023 16:37:18 +0900
add numfs(wip)
Diffstat:
| A | cmd/numfs.go | | | 72 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| M | file.go | | | 1 | - |
2 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/cmd/numfs.go b/cmd/numfs.go
@@ -0,0 +1,72 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "io/fs"
+ "log"
+ "net"
+ "os"
+
+ "lib9p"
+)
+
+type numFS struct{}
+
+func (fsys *numFS) Open(name string) (lib9p.File, error) {
+ if name != "." {
+ return nil, &fs.PathError{
+ Op: "open",
+ Path: name,
+ Err: fmt.Errorf("not found"),
+ }
+ }
+ return &numRoot{}, nil
+}
+
+type numFile struct {
+ id int
+ text string
+}
+
+func (f *numFile) Stat() (fs.FileInfo, error) {
+
+}
+
+type numRoot numFile
+
+func (root *numRoot) ReadDir() {}
+
+var dFlag = flag.Bool("D", false, "Prints chatty message to the stderr.")
+
+func main() {
+ flag.Parse()
+ if *dFlag {
+ lib9p.Chatty()
+ }
+
+ if flag.NArg() != 0 {
+ fmt.Fprintf(os.Stderr, "usage: %s [-D]\n", os.Args[0])
+ os.Exit(1)
+ }
+
+ listener, err := net.Listen("tcp", "127.0.0.1:5640")
+ if err != nil {
+ log.Fatalf("listen tcp: %v", err)
+ }
+
+ for {
+ conn, err := listener.Accept()
+ if err != nil {
+ log.Printf("accept connection: %v", err)
+ continue
+ }
+
+ go handle(conn, &numFS{})
+ }
+}
+
+func handle(conn net.Conn, fs *numFS) {
+ srv := lib9p.NewServer(fs, 8*1024, conn, conn)
+ srv.Serve()
+}
diff --git a/file.go b/file.go
@@ -3,7 +3,6 @@ package lib9p
import (
"fmt"
"io/fs"
-// "os"
"time"
)