github.com/iron-io/functions@v0.0.0-20180820112432-d59d7d1c40b2/fn/langs/base.go (about)

     1  package langs
     2  
     3  // GetLangHelper returns a LangHelper for the passed in language
     4  func GetLangHelper(lang string) LangHelper {
     5  	switch lang {
     6  	case "go":
     7  		return &GoLangHelper{}
     8  	case "node":
     9  		return &NodeLangHelper{}
    10  	case "ruby":
    11  		return &RubyLangHelper{}
    12  	case "python":
    13  		return &PythonHelper{}
    14  	case "rust":
    15  		return &RustLangHelper{}
    16  	case "dotnet":
    17  		return &DotNetLangHelper{}
    18  	case "java":
    19  		return &JavaLangHelper{}
    20  	case "lambda-nodejs4.3":
    21  		return &LambdaNodeHelper{}
    22  	}
    23  	return nil
    24  }
    25  
    26  type LangHelper interface {
    27  	// Entrypoint sets the Docker Entrypoint. One of Entrypoint or Cmd is required.
    28  	Entrypoint() string
    29  	// Cmd sets the Docker command. One of Entrypoint or Cmd is required.
    30  	Cmd() string
    31  	HasPreBuild() bool
    32  	PreBuild() error
    33  	AfterBuild() error
    34  }
    35  
    36  // BaseHelper is empty implementation of LangHelper for embedding in implementations.
    37  type BaseHelper struct {
    38  }
    39  
    40  func (h *BaseHelper) Cmd() string { return "" }