From 4347e8cee80729e85fadca9b2dcc6fd564115ce9 Mon Sep 17 00:00:00 2001 From: Wilken Rivera Date: Tue, 23 May 2023 21:05:35 -0400 Subject: [PATCH] Default to PuluginFolders is KnownPluginFolders is unset * PACKER_PLUGIN_PATH takes precedence over all --- packer/plugin.go | 3 +-- packer/plugin_discover_test.go | 1 - packer/plugin_folders.go | 9 +++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packer/plugin.go b/packer/plugin.go index 4bd5765f1..5e4360f4f 100644 --- a/packer/plugin.go +++ b/packer/plugin.go @@ -6,7 +6,6 @@ package packer import ( "crypto/sha256" "encoding/json" - "errors" "fmt" "log" "os" @@ -81,7 +80,7 @@ func (c *PluginConfig) Discover() error { } if len(c.KnownPluginFolders) == 0 { - return errors.New("no known plugin folders defined") + c.KnownPluginFolders = PluginFolders() } // TODO after JSON is deprecated remove support for legacy component plugins. diff --git a/packer/plugin_discover_test.go b/packer/plugin_discover_test.go index 32dccf9aa..91e8ba6b3 100644 --- a/packer/plugin_discover_test.go +++ b/packer/plugin_discover_test.go @@ -24,7 +24,6 @@ func newPluginConfig() PluginConfig { var conf PluginConfig conf.PluginMinPort = 10000 conf.PluginMaxPort = 25000 - conf.KnownPluginFolders = []string{os.TempDir()} return conf } diff --git a/packer/plugin_folders.go b/packer/plugin_folders.go index 99ff3b13a..52d63aac4 100644 --- a/packer/plugin_folders.go +++ b/packer/plugin_folders.go @@ -16,6 +16,11 @@ import ( func PluginFolders(dirs ...string) []string { res := []string{} + if packerPluginPath := os.Getenv("PACKER_PLUGIN_PATH"); packerPluginPath != "" { + res = append(res, strings.Split(packerPluginPath, string(os.PathListSeparator))...) + return res + } + if path, err := os.Executable(); err != nil { log.Printf("[ERR] Error finding executable: %v", err) } else { @@ -30,9 +35,5 @@ func PluginFolders(dirs ...string) []string { res = append(res, filepath.Join(cd, "plugins")) } - if packerPluginPath := os.Getenv("PACKER_PLUGIN_PATH"); packerPluginPath != "" { - res = append(res, strings.Split(packerPluginPath, string(os.PathListSeparator))...) - } - return res }