Rework engine to apply changes at the end & add pushover notification

This commit is contained in:
William Bouzourène 2025-03-17 16:57:41 +01:00
parent 4b1861fa9b
commit 50dcc9d994
6 changed files with 186 additions and 57 deletions

View file

@ -11,6 +11,11 @@ type Config struct {
Hetzner struct {
ApiToken string `env:"HETZNER_API_TOKEN"`
}
PushOver struct {
Enable bool `env:"PUSHOVER_ENABLE"`
AppKey string `env:"PUSHOVER_APP_KEY"`
UserKey string `env:"PUSHOVER_USER_KEY"`
}
}
var configParsed bool

44
helpers/pushover.go Normal file
View file

@ -0,0 +1,44 @@
package helpers
import (
"fmt"
"github.com/gregdel/pushover"
)
type PushoverMessage struct {
AppKey string
UserKey string
Title string
Message string
}
func PushoverSendMessage(message PushoverMessage) error {
if len(message.AppKey) == 0 {
return fmt.Errorf("pushover app key is required")
}
if len(message.UserKey) == 0 {
return fmt.Errorf("pushover user key is required")
}
if len(message.Message) == 0 {
return fmt.Errorf("pushover message is required")
}
app := pushover.New(message.AppKey)
user := pushover.NewRecipient(message.UserKey)
var msg *pushover.Message
if len(message.Title) > 0 {
msg = pushover.NewMessageWithTitle(
message.Message,
message.Title,
)
} else {
msg = pushover.NewMessage(message.Message)
}
_, err := app.SendMessage(msg, user)
return err
}