moby/daemon/execdriver/utils.go
Victor Vieux 064b5f870d support add and drop in both order
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
2014-07-11 23:43:21 +00:00

34 lines
665 B
Go

package execdriver
import (
"strings"
"github.com/docker/libcontainer/security/capabilities"
"github.com/dotcloud/docker/utils"
)
func TweakCapabilities(basics, adds, drops []string) []string {
var caps []string
if utils.StringsContainsNoCase(adds, "all") {
basics = capabilities.GetAllCapabilities()
}
if !utils.StringsContainsNoCase(drops, "all") {
for _, cap := range basics {
if !utils.StringsContainsNoCase(drops, cap) {
caps = append(caps, cap)
}
}
}
for _, cap := range adds {
if strings.ToLower(cap) == "all" {
continue
}
if !utils.StringsContainsNoCase(caps, cap) {
caps = append(caps, cap)
}
}
return caps
}