utils.go 665 B

12345678910111213141516171819202122232425262728293031323334
  1. package execdriver
  2. import (
  3. "strings"
  4. "github.com/docker/libcontainer/security/capabilities"
  5. "github.com/dotcloud/docker/utils"
  6. )
  7. func TweakCapabilities(basics, adds, drops []string) []string {
  8. var caps []string
  9. if utils.StringsContainsNoCase(adds, "all") {
  10. basics = capabilities.GetAllCapabilities()
  11. }
  12. if !utils.StringsContainsNoCase(drops, "all") {
  13. for _, cap := range basics {
  14. if !utils.StringsContainsNoCase(drops, cap) {
  15. caps = append(caps, cap)
  16. }
  17. }
  18. }
  19. for _, cap := range adds {
  20. if strings.ToLower(cap) == "all" {
  21. continue
  22. }
  23. if !utils.StringsContainsNoCase(caps, cap) {
  24. caps = append(caps, cap)
  25. }
  26. }
  27. return caps
  28. }