in main/cmds.go [288:311]
func decodeScript(script string) (string, string, error) {
// scripts must be base64 encoded
s, err := base64.StdEncoding.DecodeString(script)
if err != nil {
return "", "", errors.Wrap(err, "failed to decode script")
}
// scripts may be gzip'ed
r, err := gzip.NewReader(bytes.NewReader(s))
if err != nil {
return string(s), fmt.Sprintf("%d;%d;gzip=0", len(script), len(s)), nil
}
var buf bytes.Buffer
w := bufio.NewWriter(&buf)
n, err := io.Copy(w, r)
if err != nil {
return "", "", errors.Wrap(err, "failed to decompress script")
}
w.Flush()
return buf.String(), fmt.Sprintf("%d;%d;gzip=1", len(script), n), nil
}