48 lines
610 B
Go
48 lines
610 B
Go
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))
|
|
}
|
|
}
|
|
}
|