mirror of
https://codeberg.org/frosty/modbot.git
synced 2024-09-19 11:46:34 -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)
|
tmpl, err := template.New("module").Parse(m.Template)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("template parsing error: %v\n", err)
|
log.Printf("template parsing error: %v\n", err)
|
||||||
return
|
output.WriteString("failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := tmpl.Execute(&output, info); err != nil {
|
if err := tmpl.Execute(&output, info); err != nil {
|
||||||
log.Printf("template execution error: %v\n", err)
|
log.Printf("template execution error: %v\n", err)
|
||||||
return
|
output.WriteString("failed")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(&output, "%v", info)
|
fmt.Fprintf(&output, "%v", info)
|
||||||
|
@ -140,7 +139,7 @@ func createOutput(b *bytes.Buffer) {
|
||||||
b.Write(suffix)
|
b.Write(suffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
func monitorUpdates(setXRootName bool) {
|
func monitorUpdates(outputHandler func([]byte)) {
|
||||||
var lastOutput []byte
|
var lastOutput []byte
|
||||||
var combinedOutput bytes.Buffer
|
var combinedOutput bytes.Buffer
|
||||||
|
|
||||||
|
@ -150,11 +149,7 @@ func monitorUpdates(setXRootName bool) {
|
||||||
combinedOutputBytes := combinedOutput.Bytes()
|
combinedOutputBytes := combinedOutput.Bytes()
|
||||||
|
|
||||||
if !bytes.Equal(combinedOutputBytes, lastOutput) {
|
if !bytes.Equal(combinedOutputBytes, lastOutput) {
|
||||||
if setXRootName {
|
outputHandler(combinedOutputBytes)
|
||||||
xproto.ChangeProperty(x, xproto.PropModeReplace, root, xproto.AtomWmName, xproto.AtomString, 8, uint32(len(combinedOutputBytes)), combinedOutputBytes)
|
|
||||||
} else {
|
|
||||||
fmt.Printf("%s\n", combinedOutputBytes)
|
|
||||||
}
|
|
||||||
lastOutput = append([]byte(nil), combinedOutputBytes...)
|
lastOutput = append([]byte(nil), combinedOutputBytes...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,7 +180,13 @@ func main() {
|
||||||
go modules[i].Init(i)
|
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 {
|
for sig := range sigChan {
|
||||||
go handleSignal(sig)
|
go handleSignal(sig)
|
||||||
|
|
Loading…
Reference in a new issue