MCPcopy Create free account
hub / github.com/apache/openwhisk-cli / getExec

Function getExec

commands/action.go:595–673  ·  view source on GitHub ↗
(args []string, params ActionFlags)

Source from the content-addressed store, hash-verified

593}
594
595func getExec(args []string, params ActionFlags) (*whisk.Exec, error) {
596 var err error
597 var code string
598 var exec *whisk.Exec
599
600 exec = new(whisk.Exec)
601 kind := params.kind
602 isNative := params.native
603 docker := params.docker
604 mainEntry := params.main
605 ext := ""
606
607 if len(args) == 2 {
608 artifact := args[1]
609 ext = filepath.Ext(artifact)
610 code, err = ReadFile(artifact)
611
612 if err != nil {
613 whisk.Debug(whisk.DbgError, "ReadFile(%s) error: %s\n", artifact, err)
614 return nil, err
615 }
616
617 if ext == ZIP_EXT || ext == JAVA_EXT || ext == BAL_BIN_EXT {
618 code = base64.StdEncoding.EncodeToString([]byte(code))
619 }
620
621 exec.Code = &code
622 } else if len(args) == 1 && len(docker) == 0 {
623 return nil, noArtifactError()
624 } else if len(args) > 1 {
625 return nil, noArtifactError()
626 }
627
628 if len(kind) > 0 {
629 exec.Kind = kind
630 } else if len(docker) > 0 || isNative {
631 exec.Kind = BLACKBOX
632 if isNative {
633 exec.Image = "openwhisk/dockerskeleton"
634 } else {
635 exec.Image = docker
636 }
637 } else if ext == SWIFT_EXT {
638 exec.Kind = fmt.Sprintf("%s:%s", SWIFT, DEFAULT)
639 } else if ext == NODE_JS_EXT {
640 exec.Kind = fmt.Sprintf("%s:%s", NODE_JS, DEFAULT)
641 } else if ext == PYTHON_EXT {
642 exec.Kind = fmt.Sprintf("%s:%s", PYTHON, DEFAULT)
643 } else if ext == JAVA_EXT {
644 exec.Kind = fmt.Sprintf("%s:%s", JAVA, DEFAULT)
645 } else if ext == PHP_EXT {
646 exec.Kind = fmt.Sprintf("%s:%s", PHP, DEFAULT)
647 } else if ext == RUBY_EXT {
648 exec.Kind = fmt.Sprintf("%s:%s", RUBY, DEFAULT)
649 } else if ext == RUST_EXT {
650 exec.Kind = fmt.Sprintf("%s:%s", RUST, DEFAULT)
651 } else if ext == GO_EXT {
652 exec.Kind = fmt.Sprintf("%s:%s", GO, DEFAULT)

Callers 2

TestBallerinaBinaryFileFunction · 0.85
parseActionFunction · 0.85

Calls 5

noArtifactErrorFunction · 0.85
zipKindErrorFunction · 0.85
extensionErrorFunction · 0.85
javaEntryErrorFunction · 0.85
ReadFileFunction · 0.70

Tested by 1

TestBallerinaBinaryFileFunction · 0.68