File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed
Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -40,17 +40,27 @@ func (e errPluginNotFound) Error() string {
4040//
4141// [ConfigFile.CLIPluginsExtraDirs]: https://pkg.go.dev/github.com/docker/cli@v26.1.4+incompatible/cli/config/configfile#ConfigFile.CLIPluginsExtraDirs
4242func getPluginDirs (cfg * configfile.ConfigFile ) []string {
43+ var configPluginDirs []string
4344 var pluginDirs []string
44-
4545 if cfg != nil {
46- pluginDirs = append (pluginDirs , cfg .CLIPluginsExtraDirs ... )
46+ configPluginDirs = append (configPluginDirs , cfg .CLIPluginsExtraDirs ... )
4747 }
48+ pluginDirs = append (pluginDirs , expandEnvironmentVariablesInPluginDirString (configPluginDirs )... )
4849 pluginDir := filepath .Join (config .Dir (), "cli-plugins" )
4950 pluginDirs = append (pluginDirs , pluginDir )
5051 pluginDirs = append (pluginDirs , defaultSystemPluginDirs ... )
5152 return pluginDirs
5253}
5354
55+ // Resolve statements like $HOME in plugin directory paths
56+ func expandEnvironmentVariablesInPluginDirString (pluginDirs []string ) []string {
57+ var replacedPluginDirs []string
58+ for _ , dir := range pluginDirs {
59+ replacedPluginDirs = append (replacedPluginDirs , os .ExpandEnv (dir ))
60+ }
61+ return replacedPluginDirs
62+ }
63+
5464func addPluginCandidatesFromDir (res map [string ][]string , d string ) {
5565 dentries , err := os .ReadDir (d )
5666 // Silently ignore any directories which we cannot list (e.g. due to
You can’t perform that action at this time.
0 commit comments