|
@@ -19,15 +19,19 @@ var (
|
|
|
socketsPath = "/run/docker/plugins"
|
|
|
)
|
|
|
|
|
|
-// localRegistry defines a registry that is local (using unix socket).
|
|
|
-type localRegistry struct{}
|
|
|
+// LocalRegistry defines a registry that is local (using unix socket).
|
|
|
+type LocalRegistry struct {
|
|
|
+ SpecsPaths func() []string
|
|
|
+}
|
|
|
|
|
|
-func newLocalRegistry() localRegistry {
|
|
|
- return localRegistry{}
|
|
|
+func NewLocalRegistry() LocalRegistry {
|
|
|
+ return LocalRegistry{
|
|
|
+ SpecsPaths,
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Scan scans all the plugin paths and returns all the names it found
|
|
|
-func Scan() ([]string, error) {
|
|
|
+func (l *LocalRegistry) Scan() ([]string, error) {
|
|
|
var names []string
|
|
|
dirEntries, err := os.ReadDir(socketsPath)
|
|
|
if err != nil && !os.IsNotExist(err) {
|
|
@@ -49,7 +53,7 @@ func Scan() ([]string, error) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- for _, p := range SpecsPaths() {
|
|
|
+ for _, p := range l.SpecsPaths() {
|
|
|
dirEntries, err := os.ReadDir(p)
|
|
|
if err != nil && !os.IsNotExist(err) {
|
|
|
return nil, errors.Wrap(err, "error reading dir entries")
|
|
@@ -83,7 +87,7 @@ func Scan() ([]string, error) {
|
|
|
}
|
|
|
|
|
|
// Plugin returns the plugin registered with the given name (or returns an error).
|
|
|
-func (l *localRegistry) Plugin(name string) (*Plugin, error) {
|
|
|
+func (l *LocalRegistry) Plugin(name string) (*Plugin, error) {
|
|
|
socketpaths := pluginPaths(socketsPath, name, ".sock")
|
|
|
|
|
|
for _, p := range socketpaths {
|
|
@@ -93,7 +97,7 @@ func (l *localRegistry) Plugin(name string) (*Plugin, error) {
|
|
|
}
|
|
|
|
|
|
var txtspecpaths []string
|
|
|
- for _, p := range SpecsPaths() {
|
|
|
+ for _, p := range l.SpecsPaths() {
|
|
|
txtspecpaths = append(txtspecpaths, pluginPaths(p, name, ".spec")...)
|
|
|
txtspecpaths = append(txtspecpaths, pluginPaths(p, name, ".json")...)
|
|
|
}
|