mirror of
https://codeberg.org/frosty/modbot.git
synced 2024-09-19 03:36:35 -04:00
Compare commits
2 commits
ab8f19441c
...
4fb9dd34d6
Author | SHA1 | Date | |
---|---|---|---|
frosty | 4fb9dd34d6 | ||
frosty | 170d4e3484 |
21
main.go
21
main.go
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue