system/dbus: buffer xdg-dbus-proxy messages
All checks were successful
test / test (push) Successful in 21s
All checks were successful
test / test (push) Successful in 21s
Pointing xdg-dbus-proxy to stdout/stderr makes a huge mess. This change enables app to neatly print out prefixed xdg-dbus-proxy messages after output is resumed. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
@@ -41,6 +41,8 @@ type appSeal struct {
|
||||
id string
|
||||
// wayland mediation, disabled if nil
|
||||
wl *shim.Wayland
|
||||
// dbus proxy message buffer retriever
|
||||
dbusMsg func(f func(msgbuf []string))
|
||||
|
||||
// freedesktop application ID
|
||||
fid string
|
||||
|
||||
@@ -22,8 +22,10 @@ func (seal *appSeal) shareDBus(config [2]*dbus.Config) error {
|
||||
sessionPath, systemPath := path.Join(seal.share, "bus"), path.Join(seal.share, "system_bus_socket")
|
||||
|
||||
// configure dbus proxy
|
||||
if err := seal.sys.ProxyDBus(config[0], config[1], sessionPath, systemPath); err != nil {
|
||||
if f, err := seal.sys.ProxyDBus(config[0], config[1], sessionPath, systemPath); err != nil {
|
||||
return err
|
||||
} else {
|
||||
seal.dbusMsg = f
|
||||
}
|
||||
|
||||
// share proxy sockets
|
||||
|
||||
@@ -185,6 +185,15 @@ func (a *app) Wait() (int, error) {
|
||||
// child process exited, resume output
|
||||
fmsg.Resume()
|
||||
|
||||
// print queued up dbus messages
|
||||
if a.seal.dbusMsg != nil {
|
||||
a.seal.dbusMsg(func(msgbuf []string) {
|
||||
for _, msg := range msgbuf {
|
||||
fmsg.Println(msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// close wayland connection
|
||||
if a.seal.wl != nil {
|
||||
if err := a.seal.wl.Close(); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user