github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/pkg/image/pull_policy.go (about) 1 package image 2 3 import ( 4 "github.com/pkg/errors" 5 ) 6 7 // PullPolicy defines a policy for how to manage images 8 type PullPolicy int 9 10 const ( 11 // PullAlways images, even if they are present 12 PullAlways PullPolicy = iota 13 // PullNever images, even if they are not present 14 PullNever 15 // PullIfNotPresent pulls images if they aren't present 16 PullIfNotPresent 17 ) 18 19 var nameMap = map[string]PullPolicy{"always": PullAlways, "never": PullNever, "if-not-present": PullIfNotPresent, "": PullAlways} 20 21 // ParsePullPolicy from string 22 func ParsePullPolicy(policy string) (PullPolicy, error) { 23 if val, ok := nameMap[policy]; ok { 24 return val, nil 25 } 26 27 return PullAlways, errors.Errorf("invalid pull policy %s", policy) 28 } 29 30 func (p PullPolicy) String() string { 31 switch p { 32 case PullAlways: 33 return "always" 34 case PullNever: 35 return "never" 36 case PullIfNotPresent: 37 return "if-not-present" 38 } 39 40 return "" 41 }