mirror of
https://github.com/moby/moby.git
synced 2026-08-09 01:21:37 +00:00
34 lines
771 B
Go
34 lines
771 B
Go
// SPDX-FileCopyrightText: Copyright 2015-2025 go-swagger maintainers
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package docui
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"path"
|
|
)
|
|
|
|
// serveUI creates a [http.Handler] that serves a templated asset as text/html.
|
|
func serveUI(pth string, assets []byte, next http.Handler) http.Handler {
|
|
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
|
if path.Clean(r.URL.Path) == pth {
|
|
rw.Header().Set(contentTypeHeader, "text/html; charset=utf-8")
|
|
rw.WriteHeader(http.StatusOK)
|
|
_, _ = rw.Write(assets)
|
|
|
|
return
|
|
}
|
|
|
|
if next != nil {
|
|
next.ServeHTTP(rw, r)
|
|
|
|
return
|
|
}
|
|
|
|
rw.Header().Set(contentTypeHeader, "text/plain")
|
|
rw.WriteHeader(http.StatusNotFound)
|
|
_, _ = fmt.Fprintf(rw, "%q not found", pth)
|
|
})
|
|
}
|