cli

package
v2.2.1 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2026 License: MIT Imports: 21 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run(root any, opts ...AppOption) error

Run executes the application based on the provided root struct. It parses the CLI arguments, resolves commands, binds flags, infuses dependencies, and runs lifecycle hooks.

Example:

func main() {
	app := &CLI{}
	if err := cli.Run(app); err != nil {
		log.Fatal(err)
	}
}

Types

type AfterRunner

type AfterRunner interface {
	After() error
}

AfterRunner is an interface for commands that run after the main run.

type App added in v2.0.3

type App struct {
	RootNode   *parser.CommandNode
	Translator help.Translator
	Container  *di.Container
	Validator  *validation.Validator
	// contains filtered or unexported fields
}

App represents a CLI application.

func New added in v2.0.3

func New(root any, opts ...AppOption) (*App, error)

New creates a new App from a root struct.

Example:

app, err := cli.New(&CLI{}, cli.WithVersion("1.0.0"))

func (*App) AddCommand added in v2.0.3

func (a *App) AddCommand(name string, cmd *parser.CommandNode)

AddCommand adds a dynamic command to the application.

func (*App) GenBashCompletion added in v2.1.0

func (a *App) GenBashCompletion(w io.Writer) error

GenBashCompletion writes a bash completion script for the app.

func (*App) GenFishCompletion added in v2.1.0

func (a *App) GenFishCompletion(w io.Writer) error

GenFishCompletion writes a fish completion script for the app.

func (*App) GenZshCompletion added in v2.1.0

func (a *App) GenZshCompletion(w io.Writer) error

GenZshCompletion writes a zsh completion script for the app.

func (*App) Reload added in v2.0.4

func (a *App) Reload() error

Reload re-parses the root struct to pick up dynamic changes (e.g. map entries).

Example:

err := app.Reload()

func (*App) Run added in v2.0.3

func (a *App) Run() (runErr error)

Run executes the application.

func (*App) SetContext added in v2.1.0

func (a *App) SetContext(ctx context.Context)

SetContext sets the context for the application.

func (*App) SetName added in v2.0.4

func (a *App) SetName(name string)

SetName sets the name of the root command.

func (*App) SetTranslator added in v2.0.4

func (a *App) SetTranslator(tr help.Translator)

SetTranslator sets the translator for the application.

func (*App) SetVersion added in v2.1.0

func (a *App) SetVersion(v string)

SetVersion sets the version string for the application.

type AppOption added in v2.2.0

type AppOption = options.Option[App]

AppOption is a functional option for App configuration.

func WithContainer added in v2.2.0

func WithContainer(container *di.Container) AppOption

WithContainer sets the DI container for dependency injection in commands.

func WithContext added in v2.2.0

func WithContext(ctx context.Context) AppOption

WithContext sets the application context.

func WithPanicRecovery added in v2.2.0

func WithPanicRecovery() AppOption

WithPanicRecovery enables panic recovery in Run.

func WithTranslator added in v2.2.0

func WithTranslator(tr help.Translator) AppOption

WithTranslator sets the help translator.

func WithValidator added in v2.2.0

func WithValidator(validator *validation.Validator) AppOption

WithValidator sets the struct validator for command validation.

func WithVersion added in v2.2.0

func WithVersion(v string) AppOption

WithVersion sets the application version.

type Base

type Base struct {
	Logger    log.Logger      `internal:"ignore"`
	Ctx       context.Context `internal:"ignore"`
	Container *di.Container   `internal:"ignore"`
}

Base is a struct that can be embedded in commands to provide common functionality.

type BeforeRunner

type BeforeRunner interface {
	Before() error
}

BeforeRunner is an interface for commands that run before the main run.

type Runner

type Runner interface {
	Run() error
}

Runner is an interface for commands that can be run.

Jump to

Keyboard shortcuts

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