all repos — elgit @ 44450b390182ad5d88368acdf21b58cfdb6ba7ef

fork of legit: web frontend for git, written in go

de-duplicate routing setup

Alan Pearce
commit

44450b390182ad5d88368acdf21b58cfdb6ba7ef

parent

e24779b3ceded18d5942337b8a1dbc82d4926a10

1 file changed, 22 insertions(+), 32 deletions(-)

changed files
M routes/handler.goroutes/handler.go
@@ -105,7 +105,7 @@ }
} }() - mux.NotFoundHandler = func(w http.ResponseWriter, r *http.Request) { + mux.NotFoundHandler = func(w http.ResponseWriter, _ *http.Request) { d.Write404(w) }
@@ -116,37 +116,27 @@ mux.NewGroup("/static/").
UsingContext(). Handler("GET", "/*", http.FileServerFS(staticFiles)) - mux.GET("/:name/tree/:ref/*rest", d.RepoTree) - mux.GET("/:name/blob/:ref/*rest", d.FileContent) - mux.GET("/:name/tree/:ref/", d.RepoTree) - mux.GET("/:name/blob/:ref/", d.FileContent) - mux.GET("/:name/log/:ref", d.Log) - mux.GET("/:name/archive/:file", d.Archive) - mux.GET("/:name/commit/:ref", d.Diff) - mux.GET("/:name/commit/:ref/*file", d.FileDiff) - mux.GET("/:name/refs/", d.Refs) - mux.GET("/:name", d.Multiplex) - mux.POST("/:name", d.Multiplex) - mux.GET("/:name/", d.Multiplex) - mux.POST("/:name/", d.Multiplex) - mux.GET("/:name/*rest", d.Multiplex) - mux.POST("/:name/*rest", d.Multiplex) - - mux.GET("/:category/:name/tree/:ref/*rest", d.RepoTree) - mux.GET("/:category/:name/blob/:ref/*rest", d.FileContent) - mux.GET("/:category/:name/tree/:ref/", d.RepoTree) - mux.GET("/:category/:name/blob/:ref/", d.FileContent) - mux.GET("/:category/:name/log/:ref", d.Log) - mux.GET("/:category/:name/archive/:file", d.Archive) - mux.GET("/:category/:name/commit/:ref", d.Diff) - mux.GET("/:category/:name/commit/:ref/*file", d.FileDiff) - mux.GET("/:category/:name/refs/", d.Refs) - mux.GET("/:category/:name", d.Multiplex) - mux.POST("/:category/:name", d.Multiplex) - mux.GET("/:category/:name/", d.Multiplex) - mux.POST("/:category/:name/", d.Multiplex) - mux.GET("/:category/:name/*rest", d.Multiplex) - mux.POST("/:category/:name/*rest", d.Multiplex) + d.mountRepoPaths(mux.NewGroup("/:name")) + d.mountRepoPaths(mux.NewGroup("/:category/:name")) return mux } + +func (d deps) mountRepoPaths(group *httptreemux.Group) { + group.GET("/tree/:ref/*rest", d.RepoTree) + group.GET("/blob/:ref/*rest", d.FileContent) + group.GET("/tree/:ref", d.RepoTree) + group.GET("/tree/:ref/", d.RepoTree) + group.GET("/blob/:ref/", d.FileContent) + group.GET("/log/:ref", d.Log) + group.GET("/archive/:file", d.Archive) + group.GET("/commit/:ref", d.Diff) + group.GET("/commit/:ref/*file", d.FileDiff) + group.GET("/refs/", d.Refs) + group.GET("", d.Multiplex) + group.POST("", d.Multiplex) + group.GET("/", d.Multiplex) + group.POST("/", d.Multiplex) + group.GET("/*rest", d.Multiplex) + group.POST("/*rest", d.Multiplex) +}