package cmd import ( "os" "github.com/spf13/cobra" ) func PluginListCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command { cmd := &cobra.Command{ Use: "list", Short: "List plugins", Aliases: []string{"ls", "dir"}, RunE: func(cmd *cobra.Command, args []string) error { if err := initializer.InitAt(cmd.Context(), InitLevelBasic); err != nil { return err } return cmder.ListPlugins(cmd.Context(), os.Stdout) }, } return cmd } func PluginUpdateCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command { cmd := &cobra.Command{ Use: "update", Short: "Update plugins", RunE: func(cmd *cobra.Command, args []string) error { if err := initializer.InitAt(cmd.Context(), InitLevelBuildRConfig); err != nil { return err } return cmder.UpdatePlugins(cmd.Context()) }, } return cmd } func PluginsCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command { cmd := &cobra.Command{ Use: "plugins", Short: "Manage plugins", SilenceUsage: true, SilenceErrors: true, } cmd.AddCommand(PluginListCommand(cmder, initializer), PluginUpdateCommand(cmder, initializer)) return cmd }