aboutsummaryrefslogtreecommitdiffhomepage
path: root/helper/bwrap/arg.static.pair.go
diff options
context:
space:
mode:
Diffstat (limited to 'helper/bwrap/arg.static.pair.go')
-rw-r--r--helper/bwrap/arg.static.pair.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/helper/bwrap/arg.static.pair.go b/helper/bwrap/arg.static.pair.go
new file mode 100644
index 00000000..cc1765ae
--- /dev/null
+++ b/helper/bwrap/arg.static.pair.go
@@ -0,0 +1,64 @@
+package bwrap
+
+const (
+ SetEnv = iota
+
+ Bind
+ BindTry
+ DevBind
+ DevBindTry
+ ROBind
+ ROBindTry
+
+ Chmod
+)
+
+var pairArgs = [...]string{
+ SetEnv: "--setenv",
+
+ Bind: "--bind",
+ BindTry: "--bind-try",
+ DevBind: "--dev-bind",
+ DevBindTry: "--dev-bind-try",
+ ROBind: "--ro-bind",
+ ROBindTry: "--ro-bind-try",
+
+ Chmod: "--chmod",
+}
+
+func (c *Config) pairArgs() Builder {
+ var n pairArg
+ n[SetEnv] = make([][2]string, 0, len(c.SetEnv))
+ for k, v := range c.SetEnv {
+ n[SetEnv] = append(n[SetEnv], [2]string{k, v})
+ }
+
+ // Arg types:
+ // Bind
+ // BindTry
+ // DevBind
+ // DevBindTry
+ // ROBind
+ // ROBindTry
+ // Chmod
+ // are handled by the sequential builder
+
+ return &n
+}
+
+type pairArg [len(pairArgs)][][2]string
+
+func (p *pairArg) Len() (l int) {
+ for _, v := range p {
+ l += len(v) * 3
+ }
+ return
+}
+
+func (p *pairArg) Append(args *[]string) {
+ for i, arg := range p {
+ for _, v := range arg {
+ *args = append(*args, pairArgs[i], v[0], v[1])
+ }
+ }
+}