plugins

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2019 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

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

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

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 $PATH 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

Jump to

Keyboard shortcuts

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