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