summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod2
-rw-r--r--go.sum8
-rw-r--r--routes.go26
3 files changed, 19 insertions, 17 deletions
diff --git a/go.mod b/go.mod
index 2625ca9..8face61 100644
--- a/go.mod
+++ b/go.mod
@@ -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
diff --git a/go.sum b/go.sum
index d150099..2f093d2 100644
--- a/go.sum
+++ b/go.sum
@@ -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=
diff --git a/routes.go b/routes.go
index 9c330b6..08d2c56 100644
--- a/routes.go
+++ b/routes.go
@@ -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()