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
}