diff options
| author | tjpcc <tjp@ctrl-c.club> | 2023-09-07 15:49:19 -0600 |
|---|---|---|
| committer | tjpcc <tjp@ctrl-c.club> | 2023-09-08 14:55:02 -0600 |
| commit | 4b937d2f1cca5595a74479eab87a8e34d0039bbf (patch) | |
| tree | 957803f20b34c42f523e73c82d0b8125aab167d3 /routes.go | |
| parent | 030d05d57a7e46c57497bfaab5f3a27a91893b9d (diff) | |
gophermaps and cgi
Diffstat (limited to 'routes.go')
| -rw-r--r-- | routes.go | 26 |
1 files changed, 16 insertions, 10 deletions
@@ -6,6 +6,7 @@ import ( "crypto/x509" "encoding/hex" "os" + "path/filepath" "sort" "strings" @@ -15,7 +16,8 @@ import ( "tildegit.org/tjp/sliderule/contrib/tlsauth" "tildegit.org/tjp/sliderule/finger" "tildegit.org/tjp/sliderule/gemini" - "tildegit.org/tjp/sliderule/gemini/gemtext" + "tildegit.org/tjp/sliderule/gemini/gemtext/atomconv" + "tildegit.org/tjp/sliderule/gopher/gophermap" "tildegit.org/tjp/sliderule/logging" ) @@ -58,32 +60,36 @@ func geminiRouter(conf config) sr.Handler { h := router.Handler() if conf.geminiAutoAtom { - h = gemtext.AutoAtom(h) + h = atomconv.Auto(h) } return h } func gopherRouter(conf config) sr.Handler { - fsys := os.DirFS(conf.gopherRoot) + settings := gophermap.FileSystemSettings{ + ParseExtended: true, + Exec: true, + ListUsers: false, + DirMaps: []string{"gophermap"}, + DirTag: "gophertag", + } router := &sr.Router{} router.Route( "/*", sr.FallthroughHandler( - fs.GopherFileHandler(fsys), - fs.GopherDirectoryDefault(fsys, "index.gophermap"), - fs.GopherDirectoryListing(fsys, nil), + cgi.ExecGopherMaps("/", conf.gopherRoot, &settings), + fs.GopherFileHandler(conf.gopherRoot, &settings), + fs.GopherDirectoryDefault(conf.gopherRoot, &settings), + fs.GopherDirectoryListing(conf.gopherRoot, &settings), ), ) router.Route( "/cgi-bin/*", - cgi.GopherCGIDirectory( - "/cgi-bin/", - strings.Join([]string{".", strings.Trim(conf.gopherRoot, "/"), "cgi-bin"}, "/"), - ), + cgi.GopherCGIDirectory("/cgi-bin/", filepath.Join(conf.gopherRoot, "cgi-bin"), &settings), ) return router.Handler() |
