package plugin import ( "github.com/boson-project/faas/cmd" "knative.dev/client/pkg/kn/plugin" "os" ) func init() { plugin.InternalPlugins = append(plugin.InternalPlugins, &faasPlugin{}) } type faasPlugin struct {} func (f *faasPlugin) Name() string { return "kn-function" } func (f *faasPlugin) Execute(args []string) error { rootCmd := cmd.NewRootCmd() oldArgs := os.Args defer (func() { os.Args = oldArgs })() os.Args = append([]string { "kn-function" }, args...) return rootCmd.Execute() } // Description for function subcommand visible in 'kn --help' func (f *faasPlugin) Description() (string, error) { return "Function plugin", nil } func (f *faasPlugin) CommandParts() []string { return []string{ "function"} } // Path is empty because its an internal plugins func (f *faasPlugin) Path() string { return "" }