2022-08-09 08:01:54 +02:00
|
|
|
package agent
|
|
|
|
|
|
|
|
import (
|
2022-08-12 09:41:17 +02:00
|
|
|
"fmt"
|
|
|
|
|
2023-03-15 15:45:00 +01:00
|
|
|
events "github.com/kairos-io/kairos-sdk/bus"
|
2023-06-14 14:44:22 +02:00
|
|
|
"github.com/kairos-io/kairos-sdk/collector"
|
2023-07-10 14:39:48 +02:00
|
|
|
"github.com/kairos-io/kairos-agent/v2/internal/bus"
|
|
|
|
"github.com/kairos-io/kairos-agent/v2/pkg/config"
|
2022-08-09 08:01:54 +02:00
|
|
|
"github.com/mudler/go-pluggable"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Notify(event string, dirs []string) error {
|
|
|
|
bus.Manager.Initialize()
|
|
|
|
|
2023-03-29 16:25:38 +02:00
|
|
|
c, err := config.Scan(collector.Directories(dirs...))
|
2022-08-09 08:01:54 +02:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2022-08-12 09:41:17 +02:00
|
|
|
if !events.IsEventDefined(event) {
|
|
|
|
return fmt.Errorf("event '%s' not defined", event)
|
|
|
|
}
|
|
|
|
|
2023-03-29 16:25:38 +02:00
|
|
|
configStr, err := c.String()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2022-08-09 08:01:54 +02:00
|
|
|
_, err = bus.Manager.Publish(pluggable.EventType(event), events.EventPayload{
|
2023-03-29 16:25:38 +02:00
|
|
|
Config: configStr,
|
2022-08-09 08:01:54 +02:00
|
|
|
})
|
|
|
|
|
|
|
|
return err
|
|
|
|
}
|