diff options
Diffstat (limited to 'examples/gopher_fileserver')
-rw-r--r-- | examples/gopher_fileserver/main.go | 33 |
1 files changed, 33 insertions, 0 deletions
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() +} |