@ -72,13 +72,6 @@ func (c *PluginConfig) Discover() error {
c . KnownPluginFolders = PluginFolders ( "." )
}
// TODO after JSON is deprecated remove support for legacy component plugins.
for _ , knownFolder := range c . KnownPluginFolders {
if err := c . discoverLegacyMonoComponents ( knownFolder ) ; err != nil {
return err
}
}
// Pick last folder as it's the one with the highest priority
// This is the same logic used when installing plugins via Packer's plugin installation commands.
pluginInstallationPath := c . KnownPluginFolders [ len ( c . KnownPluginFolders ) - 1 ]
@ -107,88 +100,6 @@ func (c *PluginConfig) Discover() error {
return nil
}
func ( c * PluginConfig ) discoverLegacyMonoComponents ( path string ) error {
var err error
log . Printf ( "[TRACE] discovering plugins in %s" , path )
if ! filepath . IsAbs ( path ) {
path , err = filepath . Abs ( path )
if err != nil {
return err
}
}
var externallyUsed [ ] string
pluginPaths , err := c . discoverSingle ( filepath . Join ( path , "packer-builder-*" ) )
if err != nil {
return err
}
for pluginName , pluginPath := range pluginPaths {
newPath := pluginPath // this needs to be stored in a new variable for the func below
c . Builders . Set ( pluginName , func ( ) ( packersdk . Builder , error ) {
return c . Client ( newPath ) . Builder ( )
} )
externallyUsed = append ( externallyUsed , pluginName )
}
if len ( externallyUsed ) > 0 {
sort . Strings ( externallyUsed )
log . Printf ( "[INFO] using external builders: %v" , externallyUsed )
externallyUsed = nil
}
pluginPaths , err = c . discoverSingle ( filepath . Join ( path , "packer-post-processor-*" ) )
if err != nil {
return err
}
for pluginName , pluginPath := range pluginPaths {
newPath := pluginPath // this needs to be stored in a new variable for the func below
c . PostProcessors . Set ( pluginName , func ( ) ( packersdk . PostProcessor , error ) {
return c . Client ( newPath ) . PostProcessor ( )
} )
externallyUsed = append ( externallyUsed , pluginName )
}
if len ( externallyUsed ) > 0 {
sort . Strings ( externallyUsed )
log . Printf ( "using external post-processors %v" , externallyUsed )
externallyUsed = nil
}
pluginPaths , err = c . discoverSingle ( filepath . Join ( path , "packer-provisioner-*" ) )
if err != nil {
return err
}
for pluginName , pluginPath := range pluginPaths {
newPath := pluginPath // this needs to be stored in a new variable for the func below
c . Provisioners . Set ( pluginName , func ( ) ( packersdk . Provisioner , error ) {
return c . Client ( newPath ) . Provisioner ( )
} )
externallyUsed = append ( externallyUsed , pluginName )
}
if len ( externallyUsed ) > 0 {
sort . Strings ( externallyUsed )
log . Printf ( "using external provisioners %v" , externallyUsed )
externallyUsed = nil
}
pluginPaths , err = c . discoverSingle ( filepath . Join ( path , "packer-datasource-*" ) )
if err != nil {
return err
}
for pluginName , pluginPath := range pluginPaths {
newPath := pluginPath // this needs to be stored in a new variable for the func below
c . DataSources . Set ( pluginName , func ( ) ( packersdk . Datasource , error ) {
return c . Client ( newPath ) . Datasource ( )
} )
externallyUsed = append ( externallyUsed , pluginName )
}
if len ( externallyUsed ) > 0 {
sort . Strings ( externallyUsed )
log . Printf ( "using external datasource %v" , externallyUsed )
}
return nil
}
func ( c * PluginConfig ) discoverSingle ( glob string ) ( map [ string ] string , error ) {
matches , err := filepath . Glob ( glob )
if err != nil {