Compare commits

...

2 commits

Author SHA1 Message Date
frosty 4fb9dd34d6 show fail message for template issues 2024-09-06 06:52:44 -04:00
frosty 170d4e3484 pass update function to monitorUpdates 2024-09-06 06:48:40 -04:00

21
main.go
View file

@ -73,12 +73,11 @@ func (m *Module) Run() {
tmpl, err := template.New("module").Parse(m.Template)
if err != nil {
log.Printf("template parsing error: %v\n", err)
return
output.WriteString("failed")
}
if err := tmpl.Execute(&output, info); err != nil {
log.Printf("template execution error: %v\n", err)
return
output.WriteString("failed")
}
} else {
fmt.Fprintf(&output, "%v", info)
@ -140,7 +139,7 @@ func createOutput(b *bytes.Buffer) {
b.Write(suffix)
}
func monitorUpdates(setXRootName bool) {
func monitorUpdates(outputHandler func([]byte)) {
var lastOutput []byte
var combinedOutput bytes.Buffer
@ -150,11 +149,7 @@ func monitorUpdates(setXRootName bool) {
combinedOutputBytes := combinedOutput.Bytes()
if !bytes.Equal(combinedOutputBytes, lastOutput) {
if setXRootName {
xproto.ChangeProperty(x, xproto.PropModeReplace, root, xproto.AtomWmName, xproto.AtomString, 8, uint32(len(combinedOutputBytes)), combinedOutputBytes)
} else {
fmt.Printf("%s\n", combinedOutputBytes)
}
outputHandler(combinedOutputBytes)
lastOutput = append([]byte(nil), combinedOutputBytes...)
}
}
@ -185,7 +180,13 @@ func main() {
go modules[i].Init(i)
}
go monitorUpdates(flags.SetXRootName)
go monitorUpdates(func(combinedOutputBytes []byte) {
if flags.SetXRootName {
xproto.ChangeProperty(x, xproto.PropModeReplace, root, xproto.AtomWmName, xproto.AtomString, 8, uint32(len(combinedOutputBytes)), combinedOutputBytes)
} else {
fmt.Printf("%s\n", combinedOutputBytes)
}
})
for sig := range sigChan {
go handleSignal(sig)