@@ -23,8 +23,9 @@ import (
2323 "os/exec"
2424
2525 "github.com/kptdev/kpt/internal/docs/generated/fndocs"
26- "github.com/kptdev/kpt/internal/util/cmdutil"
27- "github.com/kptdev/kpt/pkg/lib/fnruntime"
26+ "github.com/kptdev/kpt/internal/fnruntime"
27+ "github.com/kptdev/kpt/pkg/lib/runneroptions"
28+ "github.com/kptdev/kpt/pkg/lib/util/cmdutil"
2829 "github.com/kptdev/kpt/pkg/printer"
2930 "github.com/spf13/cobra"
3031)
@@ -43,9 +44,6 @@ func NewRunner(ctx context.Context, parent string) *Runner {
4344 }
4445 r .Command = c
4546 c .Flags ().StringVarP (& r .Image , "image" , "i" , "" , "kpt function image name" )
46- _ = r .Command .RegisterFlagCompletionFunc ("image" , func (cmd * cobra.Command , _ []string , _ string ) ([]string , cobra.ShellCompDirective ) {
47- return cmdutil .SuggestFunctions (cmd ), cobra .ShellCompDirectiveDefault
48- })
4947 cmdutil .FixDocs ("kpt" , parent , c )
5048 return r
5149}
@@ -64,17 +62,17 @@ func (r *Runner) runE(c *cobra.Command, _ []string) error {
6462 if r .Image == "" {
6563 return errors .New ("image must be specified" )
6664 }
67- resolveFunc := fnruntime . ResolveToImageForCLIFunc (fnruntime .GHCRImagePrefix )
65+ resolveFunc := ( & runneroptions. RunnerOptions {}). ResolveToImageForCLIFunc (runneroptions .GHCRImagePrefix )
6866 image , err := resolveFunc (c .Context (), r .Image )
6967 if err != nil {
7068 return err
7169 }
7270 var out , errout bytes.Buffer
7371 dockerRunArgs := []string {
7472 "run" ,
75- "--rm" , // delete the container afterward
76- "-i" , // interactive mode to accept stdin
77- "--stdin" , // keep stdin open
73+ "--rm" , // delete the container afterward
74+ "-i" , // interactive mode to accept stdin
75+ "--stdin" , // keep stdin open
7876 image ,
7977 "--help" ,
8078 }
@@ -92,15 +90,15 @@ func (r *Runner) runE(c *cobra.Command, _ []string) error {
9290 cmd := exec .Command (runtime .GetBin (), dockerRunArgs ... )
9391 cmd .Stdout = & out
9492 cmd .Stderr = & errout
95-
93+
9694 // Provide an empty ResourceList as stdin for functions that expect input
9795 // This prevents "expected exactly one object, got 0" errors
9896 emptyResourceList := `apiVersion: config.kubernetes.io/v1
9997kind: ResourceList
10098items: []
10199`
102100 cmd .Stdin = bytes .NewBufferString (emptyResourceList )
103-
101+
104102 err = cmd .Run ()
105103 pr := printer .FromContextOrDie (r .Ctx )
106104 if err != nil {
0 commit comments