github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/buildpack.go (about) 1 package requirements 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/api" 5 "github.com/cloudfoundry/cli/cf/models" 6 "github.com/cloudfoundry/cli/cf/terminal" 7 ) 8 9 type BuildpackRequirement interface { 10 Requirement 11 GetBuildpack() models.Buildpack 12 } 13 14 type buildpackApiRequirement struct { 15 name string 16 ui terminal.UI 17 buildpackRepo api.BuildpackRepository 18 buildpack models.Buildpack 19 } 20 21 func NewBuildpackRequirement(name string, ui terminal.UI, bR api.BuildpackRepository) (req *buildpackApiRequirement) { 22 req = new(buildpackApiRequirement) 23 req.name = name 24 req.ui = ui 25 req.buildpackRepo = bR 26 return 27 } 28 29 func (req *buildpackApiRequirement) Execute() (success bool) { 30 var apiErr error 31 req.buildpack, apiErr = req.buildpackRepo.FindByName(req.name) 32 33 if apiErr != nil { 34 req.ui.Failed(apiErr.Error()) 35 return false 36 } 37 38 return true 39 } 40 41 func (req *buildpackApiRequirement) GetBuildpack() models.Buildpack { 42 return req.buildpack 43 }