MCPcopy Index your code
hub / github.com/coder/coder / initScript

Method initScript

coderd/initscript.go:25–45  ·  view source on GitHub ↗

@Summary Get agent init script @ID get-agent-init-script @Produce text/plain @Tags InitScript @Param os path string true "Operating system" @Param arch path string true "Architecture" @Success 200 "Success" @Router /api/v2/init-script/{os}/{arch} [get]

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

23// @Success 200 "Success"
24// @Router /api/v2/init-script/{os}/{arch} [get]
25func (api *API) initScript(rw http.ResponseWriter, r *http.Request) {
26 os := strings.ToLower(chi.URLParam(r, "os"))
27 arch := strings.ToLower(chi.URLParam(r, "arch"))
28
29 script, exists := provisionersdk.AgentScriptEnv()[fmt.Sprintf("CODER_AGENT_SCRIPT_%s_%s", os, arch)]
30 if !exists {
31 httpapi.Write(r.Context(), rw, http.StatusBadRequest, codersdk.Response{
32 Message: fmt.Sprintf("Unknown os/arch: %s/%s", os, arch),
33 })
34 return
35 }
36 script = strings.ReplaceAll(script, "${ACCESS_URL}", api.AccessURL.String()+"/")
37 script = strings.ReplaceAll(script, "${AUTH_TYPE}", "token")
38
39 scriptBytes := []byte(script)
40 hash := sha256.Sum256(scriptBytes)
41 rw.Header().Set("Content-Digest", fmt.Sprintf("sha256:%x", base64.StdEncoding.EncodeToString(hash[:])))
42 rw.Header().Set("Content-Type", "text/plain; charset=utf-8")
43 rw.WriteHeader(http.StatusOK)
44 _, _ = rw.Write(scriptBytes)
45}

Callers

nothing calls this directly

Calls 8

AgentScriptEnvFunction · 0.92
WriteFunction · 0.92
ContextMethod · 0.65
SetMethod · 0.65
WriteMethod · 0.65
StringMethod · 0.45
HeaderMethod · 0.45
WriteHeaderMethod · 0.45

Tested by

no test coverage detected