Also includes the scaffolding for finding a validating plugin candidates. Argument validation is moved to RunE to support this, so `noArgs` is removed. Signed-off-by: Ian Campbell <ijc@docker.com>
24 lines
394 B
Go
24 lines
394 B
Go
package manager
|
|
|
|
import (
|
|
"os/exec"
|
|
)
|
|
|
|
// Candidate represents a possible plugin candidate, for mocking purposes
|
|
type Candidate interface {
|
|
Path() string
|
|
Metadata() ([]byte, error)
|
|
}
|
|
|
|
type candidate struct {
|
|
path string
|
|
}
|
|
|
|
func (c *candidate) Path() string {
|
|
return c.path
|
|
}
|
|
|
|
func (c *candidate) Metadata() ([]byte, error) {
|
|
return exec.Command(c.path, MetadataSubcommandName).Output()
|
|
}
|