From 66a1b1f39a1e1d5499b548b36d18c8daa872d7da Mon Sep 17 00:00:00 2001 From: tjpcc Date: Sat, 28 Jan 2023 14:52:35 -0700 Subject: gopher support. Some of the contrib packages were originally built gemini-specific and had to be refactored into generic core functionality and thin protocol-specific wrappers for each of gemini and gopher. --- examples/gopher_fileserver/main.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 examples/gopher_fileserver/main.go (limited to 'examples/gopher_fileserver/main.go') diff --git a/examples/gopher_fileserver/main.go b/examples/gopher_fileserver/main.go new file mode 100644 index 0000000..172ca87 --- /dev/null +++ b/examples/gopher_fileserver/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "context" + "log" + "os" + + "tildegit.org/tjp/gus" + "tildegit.org/tjp/gus/contrib/cgi" + "tildegit.org/tjp/gus/contrib/fs" + "tildegit.org/tjp/gus/gopher" + "tildegit.org/tjp/gus/logging" +) + +func main() { + fileSystem := os.DirFS(".") + + handler := gus.FallthroughHandler( + fs.GopherDirectoryDefault(fileSystem, "index.gophermap"), + fs.GopherDirectoryListing(fileSystem, nil), + cgi.GopherCGIDirectory("/cgi-bin", "./cgi-bin"), + fs.GopherFileHandler(fileSystem), + ) + + _, infoLog, _, errLog := logging.DefaultLoggers() + handler = logging.LogRequests(infoLog)(handler) + + server, err := gopher.NewServer(context.Background(), "localhost", "tcp4", ":70", handler, errLog) + if err != nil { + log.Fatal(err) + } + server.Serve() +} -- cgit v1.2.3