buildr/internal/cmd/modules.go
Peter 34c431790e
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
refactor: use connect-go instead of regular Google gRPC
- support binary name for plugins
- register plugins for container jobs
2023-09-12 18:43:34 +02:00

44 lines
952 B
Go

package cmd
import (
"fmt"
"os"
"code.icb4dc0.de/buildr/buildr/internal/slices"
"code.icb4dc0.de/buildr/buildr/modules"
"github.com/spf13/cobra"
)
func ModulesCommand(
initializer LevelInitializer,
registryAcc TypeRegistryAccessor,
manCmder ManCommander,
moduleCmder BootstrapModuleCommander,
) *cobra.Command {
cmd := &cobra.Command{
Use: "modules",
Aliases: []string{"mod", "mods"},
Short: "Interact with modules",
SilenceUsage: true,
SilenceErrors: true,
}
cmd.AddCommand(
ModulesListCommand(initializer, registryAcc, os.Stdout),
ManCmd(manCmder, initializer, registryAcc),
NewCmd(
slices.Map(modules.Categories(), func(c modules.Category) *cobra.Command {
return BootstrapModuleCmd(
c,
moduleCmder,
ModulesArgsProviderFor(initializer, registryAcc, c),
WithShort(fmt.Sprintf("Bootstrap %s module", modules.CategoryName(c))),
)
})...,
),
)
return cmd
}