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 | |
| parent | 030d05d57a7e46c57497bfaab5f3a27a91893b9d (diff) | |
gophermaps and cgi
| -rw-r--r-- | go.mod | 2 | ||||
| -rw-r--r-- | go.sum | 8 | ||||
| -rw-r--r-- | routes.go | 26 |
3 files changed, 19 insertions, 17 deletions
@@ -2,7 +2,7 @@ module tildegit.org/tjp/sr-71 go 1.19 -require tildegit.org/tjp/sliderule v1.2.0 +require tildegit.org/tjp/sliderule v1.3.1 require ( github.com/go-kit/log v0.2.1 // indirect @@ -1,14 +1,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -tildegit.org/tjp/sliderule v1.0.1-0.20230509200833-d7ffcc43d12c h1:SNZW29TADL5Kl+ysr8mUg8GNf6ftKaaVEkp8gI6kHfc= -tildegit.org/tjp/sliderule v1.0.1-0.20230509200833-d7ffcc43d12c/go.mod h1:opdo8E25iS9X9pNismM8U7pCH8XO0PdRIIhdADn8Uik= -tildegit.org/tjp/sliderule v1.2.0 h1:DsULRA+FTSoyMmA488rNfdYJa5iX8eUrSmlNSHKggfI= -tildegit.org/tjp/sliderule v1.2.0/go.mod h1:opdo8E25iS9X9pNismM8U7pCH8XO0PdRIIhdADn8Uik= +tildegit.org/tjp/sliderule v1.3.1 h1:OHhjQlYNj0MzPK4OYWDWPMikiJg+iMCbmWPW8YjROcg= +tildegit.org/tjp/sliderule v1.3.1/go.mod h1:opdo8E25iS9X9pNismM8U7pCH8XO0PdRIIhdADn8Uik= @@ -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() |
