mirror of https://github.com/docker/cli.git
Ensure plugins default search path obeys `--config`
A static global initialiser happens before the arguments are parsed, so we need to calculate the path later. Signed-off-by: Ian Campbell <ijc@docker.com>
This commit is contained in:
parent
935d47bbe9
commit
0a89eb554b
|
@ -29,15 +29,13 @@ func IsNotFound(err error) bool {
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
|
||||||
var defaultUserPluginDir = config.Path("cli-plugins")
|
|
||||||
|
|
||||||
func getPluginDirs(dockerCli command.Cli) []string {
|
func getPluginDirs(dockerCli command.Cli) []string {
|
||||||
var pluginDirs []string
|
var pluginDirs []string
|
||||||
|
|
||||||
if cfg := dockerCli.ConfigFile(); cfg != nil {
|
if cfg := dockerCli.ConfigFile(); cfg != nil {
|
||||||
pluginDirs = append(pluginDirs, cfg.CLIPluginsExtraDirs...)
|
pluginDirs = append(pluginDirs, cfg.CLIPluginsExtraDirs...)
|
||||||
}
|
}
|
||||||
pluginDirs = append(pluginDirs, defaultUserPluginDir)
|
pluginDirs = append(pluginDirs, config.Path("cli-plugins"))
|
||||||
pluginDirs = append(pluginDirs, defaultSystemPluginDirs...)
|
pluginDirs = append(pluginDirs, defaultSystemPluginDirs...)
|
||||||
return pluginDirs
|
return pluginDirs
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/docker/cli/cli/config"
|
||||||
"github.com/docker/cli/cli/config/configfile"
|
"github.com/docker/cli/cli/config/configfile"
|
||||||
"github.com/docker/cli/internal/test"
|
"github.com/docker/cli/internal/test"
|
||||||
"gotest.tools/assert"
|
"gotest.tools/assert"
|
||||||
|
@ -91,7 +92,7 @@ func TestErrPluginNotFound(t *testing.T) {
|
||||||
func TestGetPluginDirs(t *testing.T) {
|
func TestGetPluginDirs(t *testing.T) {
|
||||||
cli := test.NewFakeCli(nil)
|
cli := test.NewFakeCli(nil)
|
||||||
|
|
||||||
expected := []string{defaultUserPluginDir}
|
expected := []string{config.Path("cli-plugins")}
|
||||||
expected = append(expected, defaultSystemPluginDirs...)
|
expected = append(expected, defaultSystemPluginDirs...)
|
||||||
|
|
||||||
assert.Equal(t, strings.Join(expected, ":"), strings.Join(getPluginDirs(cli), ":"))
|
assert.Equal(t, strings.Join(expected, ":"), strings.Join(getPluginDirs(cli), ":"))
|
||||||
|
|
Loading…
Reference in New Issue