Documentation ¶
Index ¶
- Constants
- Variables
- func CurrentArch() string
- type Action
- type DownloadedPlugin
- type Downloader
- type GitHubDownloader
- type Loader
- func (l *Loader) DownloadPlugin(ctx context.Context, name string, verConstr *semver.Constraints, src string, ...) (*Plugin, error)
- func (l *Loader) LoadPlugin(ctx context.Context, name, src string, verConstr *semver.Constraints, ...) (*Plugin, error)
- func (l *Loader) MatchingVersion(ctx context.Context, name, src string, verConstr *semver.Constraints) (matching, latest *semver.Version, err error)
- type Plugin
- func (p *Plugin) Client() *client.Client
- func (p *Plugin) CommandArgs(cmd string) map[string]interface{}
- func (p *Plugin) HasAction(a Action) bool
- func (p *Plugin) Locked() *lockfile.Plugin
- func (p *Plugin) Normalize() error
- func (p *Plugin) Prepare(ctx context.Context, log logger.Logger, ...) error
- func (p *Plugin) Stop() error
- func (p *Plugin) SupportsApp(app string) bool
- func (p *Plugin) SupportsType(typ, dep string, other map[string]interface{}) bool
- func (p *Plugin) Validate() error
- type PluginCommand
- type PluginCommandArg
- type PluginHooks
- type PluginMatch
- type PluginType
- type VCSDownloader
Constants ¶
View Source
const ( DefaultPluginSourceFmt = "https://github.com/outblocks/cli-plugin-%s" DefaultAuthor = "outblocks" A = runtime.GOOS + "_" + runtime.GOARCH )
View Source
const ( CommandTypeBool = "bool" CommandTypeString = "string" CommandTypeInt = "int" )
Variables ¶
View Source
var ( ErrPluginNotFound = errors.New("plugin not found") ErrPluginNoMatchingVersionFound = errors.New("no matching version for plugin not found") )
View Source
var (
CommandTypes = []string{CommandTypeBool, CommandTypeString, CommandTypeInt}
)
View Source
var GitHubRegex = regexp.MustCompile(`^https://github\.com/(?P<owner>[^/]+)/(?P<name>[^/]+)/?$`)
Functions ¶
func CurrentArch ¶
func CurrentArch() string
Types ¶
type DownloadedPlugin ¶
type Downloader ¶
type GitHubDownloader ¶
type GitHubDownloader struct {
// contains filtered or unexported fields
}
func NewGitHubDownloader ¶
func NewGitHubDownloader() *GitHubDownloader
func (*GitHubDownloader) Download ¶
func (d *GitHubDownloader) Download(ctx context.Context, pi *pluginInfo) (*DownloadedPlugin, error)
func (*GitHubDownloader) MatchingVersion ¶ added in v0.1.2
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
func (*Loader) DownloadPlugin ¶
func (*Loader) LoadPlugin ¶
type Plugin ¶
type Plugin struct { Name string `json:"name"` Author string `json:"author"` Usage string `json:"usage"` Description string `json:"description"` Cmd map[string]string `json:"cmd"` Actions []string `json:"actions"` Hooks []*PluginHooks `json:"hooks"` Supports []string `json:"supports"` StateTypes []string `json:"state_types"` SupportedTypes []*PluginType `json:"supported_types"` Commands map[string]*PluginCommand `json:"commands"` Dir string `json:"-"` Version *semver.Version `json:"-"` // contains filtered or unexported fields }
func (*Plugin) CommandArgs ¶ added in v0.1.13
func (*Plugin) SupportsApp ¶
func (*Plugin) SupportsType ¶
type PluginCommand ¶ added in v0.1.13
type PluginCommand struct {
Args []*PluginCommandArg `json:"args"`
}
func (*PluginCommand) Validate ¶ added in v0.1.13
func (p *PluginCommand) Validate() error
type PluginCommandArg ¶ added in v0.1.13
type PluginCommandArg struct { Name string `json:"name"` Usage string `json:"usage"` Type string `json:"type"` Default interface{} `json:"default"` Value interface{} `json:"-"` }
func (*PluginCommandArg) Val ¶ added in v0.1.13
func (p *PluginCommandArg) Val() interface{}
func (*PluginCommandArg) Validate ¶ added in v0.1.13
func (p *PluginCommandArg) Validate() error
type PluginHooks ¶
func (*PluginHooks) Validate ¶
func (p *PluginHooks) Validate() error
type PluginMatch ¶
type PluginType ¶
type PluginType struct { Type string `json:"type"` Match *PluginMatch `json:"match"` }
func (*PluginType) Validate ¶
func (p *PluginType) Validate() error
type VCSDownloader ¶
type VCSDownloader struct { }
func NewVCSDownloader ¶
func NewVCSDownloader() *VCSDownloader
func (*VCSDownloader) Download ¶
func (d *VCSDownloader) Download(ctx context.Context, pi *pluginInfo) (*DownloadedPlugin, error)
func (*VCSDownloader) MatchingVersion ¶ added in v0.1.2
Source Files ¶
Click to show internal directories.
Click to hide internal directories.