mirror of
https://github.com/containrrr/watchtower.git
synced 2025-09-21 21:30:48 +02:00
feat(docs): add template preview (#1777)
This commit is contained in:
parent
9b28fbc24d
commit
9180e9558e
15 changed files with 944 additions and 20 deletions
49
tplprev/main.go
Normal file
49
tplprev/main.go
Normal file
|
@ -0,0 +1,49 @@
|
|||
//go:build !wasm
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/containrrr/watchtower/internal/meta"
|
||||
"github.com/containrrr/watchtower/pkg/notifications/preview"
|
||||
"github.com/containrrr/watchtower/pkg/notifications/preview/data"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Fprintf(os.Stderr, "watchtower/tplprev %v\n\n", meta.Version)
|
||||
|
||||
var states string
|
||||
var entries string
|
||||
|
||||
flag.StringVar(&states, "states", "cccuuueeekkktttfff", "sCanned, Updated, failEd, sKipped, sTale, Fresh")
|
||||
flag.StringVar(&entries, "entries", "ewwiiidddd", "Fatal,Error,Warn,Info,Debug,Trace")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if len(flag.Args()) < 1 {
|
||||
fmt.Fprintln(os.Stderr, "Missing required argument TEMPLATE")
|
||||
flag.Usage()
|
||||
os.Exit(1)
|
||||
return
|
||||
}
|
||||
|
||||
input, err := os.ReadFile(flag.Arg(0))
|
||||
if err != nil {
|
||||
|
||||
fmt.Fprintf(os.Stderr, "Failed to read template file %q: %v\n", flag.Arg(0), err)
|
||||
os.Exit(1)
|
||||
return
|
||||
}
|
||||
|
||||
result, err := preview.Render(string(input), data.StatesFromString(states), data.LevelsFromString(entries))
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Failed to read template file %q: %v\n", flag.Arg(0), err)
|
||||
os.Exit(1)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(result)
|
||||
}
|
62
tplprev/main_wasm.go
Normal file
62
tplprev/main_wasm.go
Normal file
|
@ -0,0 +1,62 @@
|
|||
//go:build wasm
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/containrrr/watchtower/internal/meta"
|
||||
"github.com/containrrr/watchtower/pkg/notifications/preview"
|
||||
"github.com/containrrr/watchtower/pkg/notifications/preview/data"
|
||||
|
||||
"syscall/js"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("watchtower/tplprev v" + meta.Version)
|
||||
|
||||
js.Global().Set("WATCHTOWER", js.ValueOf(map[string]any{
|
||||
"tplprev": js.FuncOf(jsTplPrev),
|
||||
}))
|
||||
<-make(chan bool)
|
||||
|
||||
}
|
||||
|
||||
func jsTplPrev(this js.Value, args []js.Value) any {
|
||||
|
||||
if len(args) < 3 {
|
||||
return "Requires 3 arguments passed"
|
||||
}
|
||||
|
||||
input := args[0].String()
|
||||
|
||||
statesArg := args[1]
|
||||
var states []data.State
|
||||
|
||||
if statesArg.Type() == js.TypeString {
|
||||
states = data.StatesFromString(statesArg.String())
|
||||
} else {
|
||||
for i := 0; i < statesArg.Length(); i++ {
|
||||
state := data.State(statesArg.Index(i).String())
|
||||
states = append(states, state)
|
||||
}
|
||||
}
|
||||
|
||||
levelsArg := args[2]
|
||||
var levels []data.LogLevel
|
||||
|
||||
if levelsArg.Type() == js.TypeString {
|
||||
levels = data.LevelsFromString(statesArg.String())
|
||||
} else {
|
||||
for i := 0; i < levelsArg.Length(); i++ {
|
||||
level := data.LogLevel(levelsArg.Index(i).String())
|
||||
levels = append(levels, level)
|
||||
}
|
||||
}
|
||||
|
||||
result, err := preview.Render(input, states, levels)
|
||||
if err != nil {
|
||||
return "Error: " + err.Error()
|
||||
}
|
||||
return result
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue