MCPcopy
hub / github.com/cortesi/devd / ServeTemplate

Method ServeTemplate

inject/inject.go:116–137  ·  view source on GitHub ↗

ServeTemplate renders and serves a template to an http.ResponseWriter

(statuscode int, w http.ResponseWriter, t *template.Template, data interface{})

Source from the content-addressed store, hash-verified

114
115// ServeTemplate renders and serves a template to an http.ResponseWriter
116func (ci *CopyInject) ServeTemplate(statuscode int, w http.ResponseWriter, t *template.Template, data interface{}) error {
117 buff := bytes.NewBuffer(make([]byte, 0, 0))
118 err := t.Execute(buff, data)
119 if err != nil {
120 return err
121 }
122
123 length := buff.Len()
124 inj, err := ci.Sniff(buff, "text/html")
125 if err != nil {
126 return err
127 }
128 w.Header().Set(
129 "Content-Length", fmt.Sprintf("%d", length+inj.Extra()),
130 )
131 w.WriteHeader(statuscode)
132 _, err = inj.Copy(w)
133 if err != nil {
134 return err
135 }
136 return nil
137}
138
139// Copy copies the data from src to dst, injecting the Payload if Sniff found
140// the marker.

Callers 2

serve404Method · 0.80
dirListMethod · 0.80

Calls 6

SniffMethod · 0.95
LenMethod · 0.80
HeaderMethod · 0.80
WriteHeaderMethod · 0.80
ExtraMethod · 0.65
CopyMethod · 0.65

Tested by

no test coverage detected