func()

in openwhisk/extractor.go [49:72]


func (ap *ActionProxy) ExtractAction(buf *[]byte, suffix string) (string, error) {
	if buf == nil || len(*buf) == 0 {
		return "", fmt.Errorf("no file")
	}
	ap.currentDir++
	newDir := fmt.Sprintf("%s/%d/%s", ap.baseDir, ap.currentDir, suffix)
	os.MkdirAll(newDir, 0755)
	file := newDir + "/exec"
	if IsZip(*buf) {
		jar := os.Getenv("OW_SAVE_JAR")
		if jar != "" {
			jarFile := newDir + "/" + jar
			Debug("Extract Action, checking if it is a jar first")
			return jarFile, UnzipOrSaveJar(*buf, newDir, jarFile)
		}
		Debug("Extract Action, assuming a zip")
		return file, Unzip(*buf, newDir)

	} else if IsGz(*buf) {
		Debug("Extract Action, assuming a tar.gz")
		return file, UnTar(*buf, newDir)
	}
	return file, os.WriteFile(file, *buf, 0755)
}