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)
}