aboutsummaryrefslogtreecommitdiffhomepage
path: root/helper/bwrap/arg.static.int.go
blob: cba3b1f784d8f1cdb1cbff096e915e793e863664 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package bwrap

import "strconv"

const (
	UID = iota
	GID
	Perms
	Size
)

var intArgs = [...]string{
	UID:   "--uid",
	GID:   "--gid",
	Perms: "--perms",
	Size:  "--size",
}

func (c *Config) intArgs() Builder {
	// Arg types:
	//   Perms
	// are handled by the sequential builder

	return &intArg{
		UID: c.UID,
		GID: c.GID,
	}
}

type intArg [len(intArgs)]*int

func (n *intArg) Len() (l int) {
	for _, v := range n {
		if v != nil {
			l += 2
		}
	}
	return
}

func (n *intArg) Append(args *[]string) {
	for i, v := range n {
		if v != nil {
			*args = append(*args, intArgs[i], strconv.Itoa(*v))
		}
	}
}