mirror of
https://github.com/mudler/luet.git
synced 2025-08-06 01:44:25 +00:00
plugins: Make execution fail if loaded plugins are erroring, print debug output on emitted responses
Now plugins failing to answer make execution fail, adapt tests
This commit is contained in:
parent
1e617b0c67
commit
fd12227d53
@ -97,7 +97,7 @@ To build a package, from a tree definition:
|
|||||||
|
|
||||||
plugin := viper.GetStringSlice("plugin")
|
plugin := viper.GetStringSlice("plugin")
|
||||||
|
|
||||||
bus.Manager.Load(plugin...).Register()
|
bus.Manager.Initialize(plugin...)
|
||||||
if len(bus.Manager.Plugins) != 0 {
|
if len(bus.Manager.Plugins) != 0 {
|
||||||
Info(":lollipop:Enabled plugins:")
|
Info(":lollipop:Enabled plugins:")
|
||||||
for _, p := range bus.Manager.Plugins {
|
for _, p := range bus.Manager.Plugins {
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package bus
|
package bus
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
. "github.com/mudler/luet/pkg/logger"
|
||||||
|
|
||||||
"github.com/mudler/go-pluggable"
|
"github.com/mudler/go-pluggable"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -47,21 +49,47 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Manager is the bus instance manager, which subscribes plugins to events emitted by Luet
|
// Manager is the bus instance manager, which subscribes plugins to events emitted by Luet
|
||||||
var Manager *pluggable.Manager = pluggable.NewManager(
|
var Manager *Bus = &Bus{
|
||||||
[]pluggable.EventType{
|
Manager: pluggable.NewManager(
|
||||||
EventPackageInstall,
|
[]pluggable.EventType{
|
||||||
EventPackageUnInstall,
|
EventPackageInstall,
|
||||||
EventPackagePreBuild,
|
EventPackageUnInstall,
|
||||||
EventPackagePreBuildArtifact,
|
EventPackagePreBuild,
|
||||||
EventPackagePostBuildArtifact,
|
EventPackagePreBuildArtifact,
|
||||||
EventPackagePostBuild,
|
EventPackagePostBuildArtifact,
|
||||||
EventRepositoryPreBuild,
|
EventPackagePostBuild,
|
||||||
EventRepositoryPostBuild,
|
EventRepositoryPreBuild,
|
||||||
EventImagePreBuild,
|
EventRepositoryPostBuild,
|
||||||
EventImagePrePull,
|
EventImagePreBuild,
|
||||||
EventImagePrePush,
|
EventImagePrePull,
|
||||||
EventImagePostBuild,
|
EventImagePrePush,
|
||||||
EventImagePostPull,
|
EventImagePostBuild,
|
||||||
EventImagePostPush,
|
EventImagePostPull,
|
||||||
},
|
EventImagePostPush,
|
||||||
)
|
},
|
||||||
|
),
|
||||||
|
}
|
||||||
|
|
||||||
|
type Bus struct {
|
||||||
|
*pluggable.Manager
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *Bus) Initialize(plugin ...string) {
|
||||||
|
b.Manager.Load(plugin...).Register()
|
||||||
|
|
||||||
|
for _, e := range b.Manager.Events {
|
||||||
|
b.Manager.Response(e, func(p *pluggable.Plugin, r *pluggable.EventResponse) {
|
||||||
|
if r.Errored() {
|
||||||
|
Fatal("Plugin", p.Name, "at", p.Executable, "Error", r.Error)
|
||||||
|
}
|
||||||
|
Debug(
|
||||||
|
"plugin_event",
|
||||||
|
"received from",
|
||||||
|
p.Name,
|
||||||
|
"at",
|
||||||
|
p.Executable,
|
||||||
|
r,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
4
tests/fixtures/plugin/test-foo
vendored
4
tests/fixtures/plugin/test-foo
vendored
@ -1,3 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo "$1" >> $EVENT_FILE
|
echo "$1" >> $EVENT_FILE
|
||||||
echo "$2" >> $PAYLOAD_FILE
|
echo "$2" >> $PAYLOAD_FILE
|
||||||
|
|
||||||
|
echo "{}"
|
Loading…
Reference in New Issue
Block a user