watchtower/tplprev/main.go

50 lines
1.1 KiB
Go
Raw Normal View History

2023-10-02 13:39:53 +02:00
//go:build !wasm
2023-10-02 11:37:30 +02:00
package main
import (
2023-10-02 13:39:53 +02:00
"flag"
2023-10-02 11:37:30 +02:00
"fmt"
2023-10-02 13:39:53 +02:00
"os"
2023-10-02 11:37:30 +02:00
"github.com/containrrr/watchtower/internal/meta"
2023-10-02 15:30:28 +02:00
"github.com/containrrr/watchtower/pkg/notifications/preview"
"github.com/containrrr/watchtower/pkg/notifications/preview/data"
2023-10-02 11:37:30 +02:00
)
func main() {
2023-10-02 15:30:28 +02:00
fmt.Fprintf(os.Stderr, "watchtower/tplprev %v\n\n", meta.Version)
2023-10-02 11:37:30 +02:00
2023-10-02 13:39:53 +02:00
var states string
var entries string
2023-10-02 11:37:30 +02:00
2023-10-02 13:39:53 +02:00
flag.StringVar(&states, "states", "cccuuueeekkktttfff", "sCanned, Updated, failEd, sKipped, sTale, Fresh")
flag.StringVar(&entries, "entries", "ewwiiidddd", "Fatal,Error,Warn,Info,Debug,Trace")
2023-10-02 11:37:30 +02:00
2023-10-02 13:39:53 +02:00
flag.Parse()
2023-10-02 11:37:30 +02:00
2023-10-02 13:39:53 +02:00
if len(flag.Args()) < 1 {
fmt.Fprintln(os.Stderr, "Missing required argument TEMPLATE")
flag.Usage()
os.Exit(1)
return
2023-10-02 11:37:30 +02:00
}
2023-10-02 13:39:53 +02:00
input, err := os.ReadFile(flag.Arg(0))
2023-10-02 11:37:30 +02:00
if err != nil {
2023-10-02 13:39:53 +02:00
fmt.Fprintf(os.Stderr, "Failed to read template file %q: %v\n", flag.Arg(0), err)
os.Exit(1)
return
2023-10-02 11:37:30 +02:00
}
2023-10-02 15:30:28 +02:00
result, err := preview.Render(string(input), data.StatesFromString(states), data.LevelsFromString(entries))
2023-10-02 11:37:30 +02:00
if err != nil {
2023-10-02 13:39:53 +02:00
fmt.Fprintf(os.Stderr, "Failed to read template file %q: %v\n", flag.Arg(0), err)
os.Exit(1)
return
2023-10-02 11:37:30 +02:00
}
2023-10-02 13:39:53 +02:00
fmt.Println(result)
2023-10-02 11:37:30 +02:00
}