github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/flag/deployment_strategy.go (about)

     1  package flag
     2  
     3  import (
     4  	"strings"
     5  
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant"
     7  	"github.com/jessevdk/go-flags"
     8  )
     9  
    10  type DeploymentStrategy struct {
    11  	Name constant.DeploymentStrategy
    12  }
    13  
    14  func (DeploymentStrategy) Complete(prefix string) []flags.Completion {
    15  	return completions([]string{string(constant.DeploymentStrategyRolling)}, prefix, false)
    16  }
    17  
    18  func (h *DeploymentStrategy) UnmarshalFlag(val string) error {
    19  	valLower := strings.ToLower(val)
    20  
    21  	switch valLower {
    22  
    23  	case string(constant.DeploymentStrategyDefault):
    24  	case string(constant.DeploymentStrategyRolling):
    25  		h.Name = constant.DeploymentStrategy(valLower)
    26  
    27  	default:
    28  		return &flags.Error{
    29  			Type:    flags.ErrInvalidChoice,
    30  			Message: `STRATEGY must be "rolling" or not set`,
    31  		}
    32  	}
    33  
    34  	return nil
    35  }