From ba76e2919b6791c78d2c1e79cb50dbc4731a5b00 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Mon, 30 Sep 2024 00:23:57 +0900 Subject: bwrap: implement argument builder Signed-off-by: Ophestra Umiker --- bwrap/config.bool.go | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 bwrap/config.bool.go (limited to 'bwrap/config.bool.go') diff --git a/bwrap/config.bool.go b/bwrap/config.bool.go new file mode 100644 index 00000000..81e6ab7b --- /dev/null +++ b/bwrap/config.bool.go @@ -0,0 +1,64 @@ +package bwrap + +const ( + UnshareAll = iota + UnshareUser + UnshareIPC + UnsharePID + UnshareNet + UnshareUTS + UnshareCGroup + ShareNet + + UserNS + Clearenv + + NewSession + DieWithParent + AsInit + + boolC +) + +var boolArgs = func() (b [boolC][]string) { + b[UnshareAll] = []string{"--unshare-all"} + b[UnshareUser] = []string{"--unshare-user"} + b[UnshareIPC] = []string{"--unshare-ipc"} + b[UnsharePID] = []string{"--unshare-pid"} + b[UnshareNet] = []string{"--unshare-net"} + b[UnshareUTS] = []string{"--unshare-uts"} + b[UnshareCGroup] = []string{"--unshare-cgroup"} + b[ShareNet] = []string{"--share-net"} + + b[UserNS] = []string{"--disable-userns", "--assert-userns-disabled"} + b[Clearenv] = []string{"--clearenv"} + + b[NewSession] = []string{"--new-session"} + b[DieWithParent] = []string{"--die-with-parent"} + b[AsInit] = []string{"--as-pid-1"} + + return +}() + +func (c *Config) boolArgs() (b [boolC]bool) { + if c.Unshare == nil { + b[UnshareAll] = true + b[ShareNet] = c.Net + } else { + b[UnshareUser] = c.Unshare.User + b[UnshareIPC] = c.Unshare.IPC + b[UnsharePID] = c.Unshare.PID + b[UnshareNet] = c.Unshare.Net + b[UnshareUTS] = c.Unshare.UTS + b[UnshareCGroup] = c.Unshare.CGroup + } + + b[UserNS] = !c.UserNS + b[Clearenv] = c.Clearenv + + b[NewSession] = c.NewSession + b[DieWithParent] = c.DieWithParent + b[AsInit] = c.AsInit + + return +} -- cgit v1.3.1