From 084cd84f36a1d608541b4aa4e1e95334395d8953 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Wed, 16 Oct 2024 01:38:59 +0900 Subject: app: port app to use the system package This commit does away with almost all baggage left over from the Ego port. Error wrapping also got simplified. All API changes happens to be internal which means no changes to main except renaming of the BaseError type. Signed-off-by: Ophestra Umiker --- internal/app/share.display.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'internal/app/share.display.go') diff --git a/internal/app/share.display.go b/internal/app/share.display.go index 86343d8b..2675c01b 100644 --- a/internal/app/share.display.go +++ b/internal/app/share.display.go @@ -6,6 +6,7 @@ import ( "path" "git.ophivana.moe/cat/fortify/acl" + "git.ophivana.moe/cat/fortify/internal/fmsg" "git.ophivana.moe/cat/fortify/internal/state" ) @@ -22,29 +23,28 @@ var ( ErrXDisplay = errors.New(display + " unset") ) -type ErrDisplayEnv BaseError - func (seal *appSeal) shareDisplay() error { // pass $TERM to launcher if t, ok := os.LookupEnv(term); ok { - seal.sys.setEnv(term, t) + seal.sys.bwrap.SetEnv[term] = t } // set up wayland if seal.et.Has(state.EnableWayland) { if wd, ok := os.LookupEnv(waylandDisplay); !ok { - return (*ErrDisplayEnv)(wrapError(ErrWayland, "WAYLAND_DISPLAY is not set")) + return fmsg.WrapError(ErrWayland, + "WAYLAND_DISPLAY is not set") } else if seal.wlDone == nil { // hardlink wayland socket wp := path.Join(seal.RuntimePath, wd) wpi := path.Join(seal.shareLocal, "wayland") w := path.Join(seal.sys.runtime, "wayland-0") - seal.sys.link(wp, wpi) - seal.sys.setEnv(waylandDisplay, w) + seal.sys.Link(wp, wpi) + seal.sys.bwrap.SetEnv[waylandDisplay] = w seal.sys.bwrap.Bind(wpi, w) // ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`) - seal.sys.updatePermTag(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute) + seal.sys.UpdatePermType(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute) } else { // set wayland socket path (e.g. `/run/user/%d/wayland-%d`) seal.wl = path.Join(seal.RuntimePath, wd) @@ -55,10 +55,11 @@ func (seal *appSeal) shareDisplay() error { if seal.et.Has(state.EnableX) { // discover X11 and grant user permission via the `ChangeHosts` command if d, ok := os.LookupEnv(display); !ok { - return (*ErrDisplayEnv)(wrapError(ErrXDisplay, "DISPLAY is not set")) + return fmsg.WrapError(ErrXDisplay, + "DISPLAY is not set") } else { - seal.sys.changeHosts(seal.sys.Username) - seal.sys.setEnv(display, d) + seal.sys.ChangeHosts(seal.sys.user.Username) + seal.sys.bwrap.SetEnv[display] = d seal.sys.bwrap.Bind("/tmp/.X11-unix", "/tmp/.X11-unix") } } -- cgit v1.3.1