func()

in internal/kernel/load.go [28:59]


func (c *Client) Load(props LoadProps, tarball []byte) (response LoadResponse, err error) {
	if response, cached := c.loaded[props]; cached {
		return response, nil
	}

	tmpfile, err := ioutil.TempFile("", fmt.Sprintf(
		"%v-%v.*.tgz",
		regexp.MustCompile("[^a-zA-Z0-9_-]").ReplaceAllString(props.Name, "-"),
		version,
	))
	if err != nil {
		return
	}
	defer os.Remove(tmpfile.Name())
	if _, err := tmpfile.Write(tarball); err != nil {
		panic(err)
	}
	tmpfile.Close()

	type request struct {
		kernelRequest
		LoadProps
		Tarball string `json:"tarball"`
	}
	err = c.request(request{kernelRequest{"load"}, props, tmpfile.Name()}, &response)

	if err == nil {
		c.loaded[props] = response
	}

	return
}