cmd

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 12, 2023 License: MIT Imports: 53 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CurrentVersion = "development"
View Source
var ErrRepoRootNotFound = errors.New("failed to detect repo root")
View Source
var ErrVaultNotInitiated = errors.New("vault is not initiated set either vault-passphrase or vault-passphrase-file")

Functions

func BootstrapModuleCmd

func BootstrapModuleCmd(
	category modules.Category,
	cmder BootstrapModuleCommander,
	argsProvider KnownModulesArgProvider,
	opts ...ModuleCommandOption,
) *cobra.Command

func EnvCommand

func EnvCommand(cmder EnvCommander) *cobra.Command

func ExecuteModuleCommand

func ExecuteModuleCommand(
	category modules.Category,
	cmder ModuleCommander,
	argsProvider KnownTasksArgProvider,
	opts ...ModuleCommandOption,
) *cobra.Command

func ManCmd

func ManCmd(
	cmder ManCommander,
	initializer LevelInitializer,
	registryAcc TypeRegistryAccessor,
) *cobra.Command

func ModuleManCommand

func ModuleManCommand(
	category modules.Category,
	cmder ManCommander,
	initializer LevelInitializer,
	argsProvider KnownModulesArgProvider,
	manCfg *ManConfig,
) *cobra.Command

func ModulesCommand

func ModulesCommand(
	initializer LevelInitializer,
	registryAcc TypeRegistryAccessor,
	manCmder ManCommander,
	moduleCmder BootstrapModuleCommander,
) *cobra.Command

func ModulesListCommand

func ModulesListCommand(
	initializer LevelInitializer,
	registryAcc TypeRegistryAccessor,
	out io.Writer,
) *cobra.Command

func NewCmd

func NewCmd(subCommands ...*cobra.Command) *cobra.Command

func PluginListCommand

func PluginListCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command

func PluginUpdateCommand

func PluginUpdateCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command

func PluginsCommand

func PluginsCommand(cmder PluginCommander, initializer LevelInitializer) *cobra.Command

func ServerCommand

func ServerCommand(cmder ServerCommander) *cobra.Command

func VaultCommand

func VaultCommand(cmder VaultCommander) *cobra.Command

func VersionCommand

func VersionCommand() *cobra.Command

Types

type App

type App struct {
	*services.Collection
	// contains filtered or unexported fields
}

func NewApp

func NewApp() *App

func (*App) AppConfig

func (a *App) AppConfig() AppConfig

func (*App) BootstrapModule

func (a *App) BootstrapModule(ctx context.Context, cat modules.Category, typeName, moduleName string) error

func (*App) BuildrConfig

func (a *App) BuildrConfig() config.Buildr

func (*App) Init

func (a *App) Init(ctx context.Context) (err error)

func (*App) InitAt

func (a *App) InitAt(ctx context.Context, lvl InitLevel) error

func (*App) Repository

func (a *App) Repository() *modules.Repository

func (*App) Run

func (a *App) Run(ctx context.Context) error

func (*App) RunModule

func (a *App) RunModule(ctx context.Context, cat modules.Category, name string) error

func (*App) RunWithArgs

func (a *App) RunWithArgs(ctx context.Context, args ...string) error

func (*App) SetInitializer

func (a *App) SetInitializer(lvl InitLevel, init AppInitializer)

func (*App) Shutdown

func (a *App) Shutdown() error

type AppConfig

type AppConfig struct {
	Vault struct {
		FilePath       string
		Passphrase     string
		PassphraseFile string
	}
	VCSType         vcs.Type
	BuildRDirectory string
	RepoRoot        string
	State           struct{ FilePath string }
	Profiling       profiling.Config
	Cache           struct{ TTL time.Duration }
	Execution       struct {
		LogToStderr      bool
		CleanDirectories bool
	}
}

func (*AppConfig) BuildRFS

func (c *AppConfig) BuildRFS() fs.FS

func (*AppConfig) CollectRepoDetails

func (c *AppConfig) CollectRepoDetails(vcsInfo any) (repoDetails repo.Repo, err error)

func (*AppConfig) Flags

func (c *AppConfig) Flags() *flag.FlagSet

func (*AppConfig) Ignorer

func (c *AppConfig) Ignorer() (*ignore.Ignorer, error)

func (*AppConfig) InitPaths

func (c *AppConfig) InitPaths(from string) (err error)

func (*AppConfig) InitState

func (c *AppConfig) InitState(ctx context.Context) (*state.DB, error)

func (*AppConfig) InitVault

func (c *AppConfig) InitVault() (*vault.Vault, error)

func (*AppConfig) ParseVCSInfo

func (c *AppConfig) ParseVCSInfo() (vcsDetails any, err error)

func (*AppConfig) RepoFS

func (c *AppConfig) RepoFS() fs.FS

type AppConfigAccessor

type AppConfigAccessor interface {
	AppConfig() AppConfig
}

type AppInitializer

type AppInitializer interface {
	Init(ctx context.Context) error
}

type AppInitializerFunc

type AppInitializerFunc func(ctx context.Context) error

func (AppInitializerFunc) Init

type BootstrapModuleCommander

type BootstrapModuleCommander interface {
	BootstrapModule(ctx context.Context, cat modules.Category, typeName, moduleName string) error
}

type BuildrConfigAccessor

type BuildrConfigAccessor interface {
	BuildrConfig() config.Buildr
}

type CommandPager

type CommandPager struct {
	// contains filtered or unexported fields
}

func NewCmdPager

func NewCmdPager(ctx context.Context, pagerCmd string, colorize bool) (p *CommandPager, err error)

func (*CommandPager) Display

func (c *CommandPager) Display() error

func (*CommandPager) Write

func (c *CommandPager) Write(p []byte) (n int, err error)

type EnvApp

type EnvApp struct {
	// contains filtered or unexported fields
}

func NewEnvApp

func NewEnvApp(initializer LevelInitializer, accessor BuildrConfigAccessor) *EnvApp

func (EnvApp) PrintPath

func (e EnvApp) PrintPath(ctx context.Context, writer io.Writer) error

type EnvCommander

type EnvCommander interface {
	PrintPath(ctx context.Context, writer io.Writer) error
}

type InitLevel

type InitLevel int
const (
	InitLevelNone InitLevel = iota
	InitLevelBasic
	InitLevelBuildRConfig
	InitLevelParseConfig
)

type KnownModulesArgProvider

type KnownModulesArgProvider interface {
	ValidModulesArgs(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)
}

func ModulesArgsProviderFor

func ModulesArgsProviderFor(
	initializer LevelInitializer,
	registryAcc TypeRegistryAccessor,
	cat modules.Category,
) KnownModulesArgProvider

type KnownModulesArgProviderFunc

type KnownModulesArgProviderFunc func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

func (KnownModulesArgProviderFunc) ValidModulesArgs

func (f KnownModulesArgProviderFunc) ValidModulesArgs(
	cmd *cobra.Command,
	args []string,
	toComplete string,
) ([]string, cobra.ShellCompDirective)

type KnownTasksArgProvider

type KnownTasksArgProvider interface {
	ValidTasksArgs(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)
}

func TasksArgsProviderFor

func TasksArgsProviderFor(initializer LevelInitializer, repoAcc ModuleRepositoryAccessor, cat modules.Category) KnownTasksArgProvider

type KnownTasksArgProviderFunc

type KnownTasksArgProviderFunc func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

func (KnownTasksArgProviderFunc) ValidTasksArgs

func (f KnownTasksArgProviderFunc) ValidTasksArgs(
	cmd *cobra.Command,
	args []string,
	toComplete string,
) ([]string, cobra.ShellCompDirective)

type LevelInitializer

type LevelInitializer interface {
	InitAt(ctx context.Context, lvl InitLevel) error
}

type ManApp

type ManApp struct {
	// contains filtered or unexported fields
}

func NewManApp

func NewManApp(templatesFs fs.FS, svcAcc ManAppServiceAccess) (*ManApp, error)

func (ManApp) DisplayModuleManual

func (m ManApp) DisplayModuleManual(ctx context.Context, pager Pager, cat modules.Category, name string) error

func (ManApp) DisplayModulesManual

func (m ManApp) DisplayModulesManual(pager Pager) error

type ManAppServiceAccess

type ManAppServiceAccess interface {
	services.TypeRegistryAccessor
}

type ManCommander

type ManCommander interface {
	DisplayModuleManual(ctx context.Context, pager Pager, cat modules.Category, name string) error
	DisplayModulesManual(pager Pager) error
}

type ManConfig

type ManConfig struct {
	ColorOutput  PagerColor
	PagerCommand string
}

func (*ManConfig) Flags

func (m *ManConfig) Flags() *flag.FlagSet

func (*ManConfig) Pager

func (m *ManConfig) Pager(ctx context.Context, title string) (Pager, error)

type ModuleCommandOption

type ModuleCommandOption func(cmd *cobra.Command)

func WithShort

func WithShort(short string) ModuleCommandOption

type ModuleCommander

type ModuleCommander interface {
	RunModule(ctx context.Context, cat modules.Category, name string) error
}

type ModuleRepositoryAccessor

type ModuleRepositoryAccessor interface {
	Repository() *modules.Repository
}

type Pager

type Pager interface {
	io.Writer
	Display() error
}

type PagerColor

type PagerColor string
const (
	PagerColorAuto   PagerColor = "auto"
	PagerColorAlways PagerColor = "always"
	PagerColorNever  PagerColor = "never"
)

func (*PagerColor) Set

func (p *PagerColor) Set(s string) error

func (*PagerColor) String

func (p *PagerColor) String() string

type PluginApp

type PluginApp struct {
	// contains filtered or unexported fields
}

func NewPluginApp

func NewPluginApp(buildrCfg *config.Buildr, pluginMgr *plugins.Manager, svcAcc PluginAppServiceAccess) *PluginApp

func (PluginApp) ListPlugins

func (p PluginApp) ListPlugins(ctx context.Context, writer io.Writer) error

func (PluginApp) UpdatePlugins

func (p PluginApp) UpdatePlugins(ctx context.Context) error

type PluginAppServiceAccess

type PluginAppServiceAccess interface {
	services.PluginsRepoAccessor
}

type PluginCommander

type PluginCommander interface {
	ListPlugins(ctx context.Context, writer io.Writer) error
	UpdatePlugins(ctx context.Context) error
}

type ServerApp

type ServerApp struct {
	// contains filtered or unexported fields
}

func NewServerApp

func NewServerApp(initializer LevelInitializer, accessor services.TypeRegistryAccessor) *ServerApp

func (*ServerApp) ServeAPI

func (s *ServerApp) ServeAPI(ctx context.Context, cfg *rpc.GrpcConfig) error

type ServerCommander

type ServerCommander interface {
	ServeAPI(ctx context.Context, cfg *rpc.GrpcConfig) error
}

type TUIPager

type TUIPager struct {
	// contains filtered or unexported fields
}

func NewTUIPager

func NewTUIPager(title string) (*TUIPager, error)

func (*TUIPager) Display

func (t *TUIPager) Display() error

func (*TUIPager) Write

func (t *TUIPager) Write(p []byte) (n int, err error)

type TypeRegistryAccessor

type TypeRegistryAccessor interface {
	TypeRegistry() *modules.TypeRegistry
}

type VaultApp

type VaultApp struct {
	// contains filtered or unexported fields
}

func NewVaultApp

func NewVaultApp(
	initializer LevelInitializer,
	serviceAccess VaultAppServiceAccess,
	configAccessor AppConfigAccessor,
) *VaultApp

func (VaultApp) Get

func (v VaultApp) Get(ctx context.Context, key string, writer io.Writer) error

func (VaultApp) Init

func (v VaultApp) Init(ctx context.Context, initCfg VaultInitConfig) error

func (VaultApp) List

func (v VaultApp) List(ctx context.Context, writer io.Writer) error

func (VaultApp) Remove

func (v VaultApp) Remove(ctx context.Context, key string) error

func (VaultApp) Set

func (v VaultApp) Set(ctx context.Context, key string, value []byte) error

type VaultAppServiceAccess

type VaultAppServiceAccess interface {
	services.VaultAccessor
	services.CollectionModifier
}

type VaultCommander

type VaultCommander interface {
	Init(ctx context.Context, cfg VaultInitConfig) error
	List(ctx context.Context, writer io.Writer) error
	Get(ctx context.Context, key string, writer io.Writer) error
	Set(ctx context.Context, key string, value []byte) error
	Remove(ctx context.Context, key string) error
}

type VaultInitConfig

type VaultInitConfig struct {
	PassphraseLength uint `mapstructure:"vault-pw-length"`
}

func (*VaultInitConfig) Flags

func (c *VaultInitConfig) Flags() *flag.FlagSet

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL