mirror of https://github.com/knative/func.git
39 lines
888 B
Go
39 lines
888 B
Go
package mock
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
type Initializer struct {
|
|
SupportedLanguages []string
|
|
InitializeInvoked bool
|
|
InitializeFn func(name, language, path string) error
|
|
}
|
|
|
|
func NewInitializer() *Initializer {
|
|
return &Initializer{
|
|
SupportedLanguages: []string{"go"},
|
|
InitializeFn: func(string, string, string) error { return nil },
|
|
}
|
|
}
|
|
|
|
func (i *Initializer) Initialize(name, language, path string) error {
|
|
fmt.Printf("Validating language supported: %v\n", language)
|
|
i.InitializeInvoked = true
|
|
if !i.supportsLanguage(language) {
|
|
return errors.New(fmt.Sprintf("unsupported language '%v'", language))
|
|
}
|
|
return i.InitializeFn(name, language, path)
|
|
}
|
|
|
|
func (i *Initializer) supportsLanguage(language string) bool {
|
|
for _, supported := range i.SupportedLanguages {
|
|
if strings.ToLower(language) == supported {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|