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