github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/targeted_organization.go (about)

     1  package requirements
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/cloudfoundry/cli/cf"
     6  	"github.com/cloudfoundry/cli/cf/configuration/core_config"
     7  	. "github.com/cloudfoundry/cli/cf/i18n"
     8  	"github.com/cloudfoundry/cli/cf/models"
     9  	"github.com/cloudfoundry/cli/cf/terminal"
    10  )
    11  
    12  type TargetedOrgRequirement interface {
    13  	Requirement
    14  	GetOrganizationFields() models.OrganizationFields
    15  }
    16  
    17  type targetedOrgApiRequirement struct {
    18  	ui     terminal.UI
    19  	config core_config.Reader
    20  }
    21  
    22  func NewTargetedOrgRequirement(ui terminal.UI, config core_config.Reader) TargetedOrgRequirement {
    23  	return targetedOrgApiRequirement{ui, config}
    24  }
    25  
    26  func (req targetedOrgApiRequirement) Execute() (success bool) {
    27  	if !req.config.HasOrganization() {
    28  		message := fmt.Sprintf(T("No org targeted, use '{{.Command}}' to target an org.", map[string]interface{}{"Command": terminal.CommandColor(cf.Name() + " target -o ORG")}))
    29  		req.ui.Failed(message)
    30  		return false
    31  	}
    32  
    33  	return true
    34  }
    35  
    36  func (req targetedOrgApiRequirement) GetOrganizationFields() (org models.OrganizationFields) {
    37  	return req.config.OrganizationFields()
    38  }