utils.go 609 B

123456789101112131415161718192021222324252627282930
  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(drops, "all") {
  10. for _, cap := range basics {
  11. if !utils.StringsContainsNoCase(drops, cap) {
  12. caps = append(caps, cap)
  13. }
  14. }
  15. }
  16. for _, cap := range adds {
  17. if strings.ToLower(cap) == "all" {
  18. caps = capabilities.GetAllCapabilities()
  19. break
  20. }
  21. if !utils.StringsContainsNoCase(caps, cap) {
  22. caps = append(caps, cap)
  23. }
  24. }
  25. return caps
  26. }