package plugins

import "github.com/gobuffalo/buffalo/plugins"

Index

Constants

const (
	EvtSetupStarted  = "buffalo-plugins:setup:started"
	EvtSetupErr      = "buffalo-plugins:setup:err"
	EvtSetupFinished = "buffalo-plugins:setup:finished"
)

Variables

var CachePath = func() string {
	home := "."
	if usr, err := user.Current(); err == nil {
		home = usr.HomeDir
	}
	return filepath.Join(home, ".buffalo", "plugin.cache")
}()

CachePath returns the path to the plugins cache

var ErrPlugMissing = fmt.Errorf("plugin missing")

ErrPlugMissing error for when a plugin is missing

Functions

func Decorate

func Decorate(c Command) *cobra.Command

Decorate setup cobra Commands for plugins

func LookPath

func LookPath(s string) (string, error)

LookPath for plugin

Types

type Command

type Command struct {
	// Name "foo"
	Name string `json:"name"`
	// UseCommand "bar"
	UseCommand string `json:"use_command"`
	// BuffaloCommand "generate"
	BuffaloCommand string `json:"buffalo_command"`
	// Description "generates a foo"
	Description string   `json:"description,omitempty"`
	Aliases     []string `json:"aliases,omitempty"`
	Binary      string   `json:"-"`
	Flags       []string `json:"flags,omitempty"`
	// Filters events to listen to ("" or "*") is all events
	ListenFor string `json:"listen_for,omitempty"`
}

Command that the plugin supplies

type Commands

type Commands []Command

Commands is a slice of Command

type List

type List map[string]Commands

List maps a Buffalo command to a slice of Command

func Available

func Available() (List, error)

Available plugins for the `buffalo` command. It will look in $GOPATH/bin and the `./plugins` directory. This can be changed by setting the $BUFFALO_PLUGIN_PATH environment variable.

Requirements:

Limit full path scan with direct plugin path

If a file/command doesn't respond to being invoked with `available` within one second, buffalo will assume that it is unable to load. This can be changed by setting the $BUFFALO_PLUGIN_TIMEOUT environment variable. It must be set to a duration that `time.ParseDuration` can process.

Source Files

cache.go command.go decorate.go events.go log.go plugins.go

Directories

PathSynopsis
plugins/plugcmds
plugins/plugdeps
Version
v1.1.2 (latest)
Published
May 17, 2025
Platform
linux/amd64
Imports
21 packages
Last checked
1 week ago

Tools for package owners.