plugins

package
v0.16.21 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2021 License: MIT Imports: 22 Imported by: 46

Documentation

Index

Constants

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

Variables

View Source
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

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

ErrPlugMissing error for when a plugin is missing

Functions

func Decorate added in v0.14.6

func Decorate(c Command) *cobra.Command

Decorate setup cobra Commands for plugins

func LookPath added in v0.14.6

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:

  • file/command must be executable
  • file/command must start with `buffalo-`
  • file/command must respond to `available` and return JSON of plugins.Commands{}

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.

Directories

Path Synopsis
You can use the "packr2 clean" command to clean up this, and any other packr generated files.
You can use the "packr2 clean" command to clean up this, and any other packr generated files.

Jump to

Keyboard shortcuts

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