package cli import ( "github.com/spf13/cobra" "github.com/oam-dev/kubevela/apis/types" cmdutil "github.com/oam-dev/kubevela/pkg/utils/util" "github.com/oam-dev/kubevela/references/common" ) var ( appFilePath string ) // NewUpCommand will create command for applying an AppFile func NewUpCommand(c types.Args, ioStream cmdutil.IOStreams) *cobra.Command { cmd := &cobra.Command{ Use: "up", DisableFlagsInUseLine: true, Short: "Apply an appfile", Long: "Apply an appfile", Annotations: map[string]string{ types.TagCommandType: types.TypeStart, }, PersistentPreRunE: func(cmd *cobra.Command, args []string) error { return c.SetConfig() }, RunE: func(cmd *cobra.Command, args []string) error { velaEnv, err := GetEnv(cmd) if err != nil { return err } kubecli, err := c.GetClient() if err != nil { return err } o := &common.AppfileOptions{ Kubecli: kubecli, IO: ioStream, Env: velaEnv, } filePath, err := cmd.Flags().GetString(appFilePath) if err != nil { return err } return o.Run(filePath, velaEnv.Namespace, c) }, } cmd.SetOut(ioStream.Out) cmd.Flags().StringP(appFilePath, "f", "", "specify file path for appfile") return cmd }