diff options
Diffstat (limited to 'helper/bwrap/arg.static.string.go')
| -rw-r--r-- | helper/bwrap/arg.static.string.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/helper/bwrap/arg.static.string.go b/helper/bwrap/arg.static.string.go new file mode 100644 index 00000000..e7f5c332 --- /dev/null +++ b/helper/bwrap/arg.static.string.go @@ -0,0 +1,65 @@ +package bwrap + +const ( + Hostname = iota + Chdir + UnsetEnv + LockFile + + RemountRO + Procfs + DevTmpfs + Mqueue +) + +var stringArgs = [...]string{ + Hostname: "--hostname", + Chdir: "--chdir", + UnsetEnv: "--unsetenv", + LockFile: "--lock-file", + + RemountRO: "--remount-ro", + Procfs: "--proc", + DevTmpfs: "--dev", + Mqueue: "--mqueue", +} + +func (c *Config) stringArgs() Builder { + n := stringArg{ + UnsetEnv: c.UnsetEnv, + LockFile: c.LockFile, + } + + if c.Hostname != "" { + n[Hostname] = []string{c.Hostname} + } + if c.Chdir != "" { + n[Chdir] = []string{c.Chdir} + } + + // Arg types: + // RemountRO + // Procfs + // DevTmpfs + // Mqueue + // are handled by the sequential builder + + return &n +} + +type stringArg [len(stringArgs)][]string + +func (s *stringArg) Len() (l int) { + for _, arg := range s { + l += len(arg) * 2 + } + return +} + +func (s *stringArg) Append(args *[]string) { + for i, arg := range s { + for _, v := range arg { + *args = append(*args, stringArgs[i], v) + } + } +} |
