github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/requirements/usage_requirement.go (about)

     1  package requirements
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  
     7  	. "code.cloudfoundry.org/cli/cf/i18n"
     8  )
     9  
    10  type RequirementFunction func() error
    11  
    12  func (f RequirementFunction) Execute() error {
    13  	return f()
    14  }
    15  
    16  func NewUsageRequirement(cmd Usable, errorMessage string, pred func() bool) Requirement {
    17  	return RequirementFunction(func() error {
    18  		if pred() {
    19  			m := fmt.Sprintf("%s. %s\n\n%s", T("Incorrect Usage"), errorMessage, cmd.Usage())
    20  
    21  			return errors.New(m)
    22  		}
    23  
    24  		return nil
    25  	})
    26  }
    27  
    28  type Usable interface {
    29  	Usage() string
    30  }