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  }