github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+incompatible/command/flag/space_role.go (about)

     1  package flag
     2  
     3  import (
     4  	"strings"
     5  
     6  	flags "github.com/jessevdk/go-flags"
     7  )
     8  
     9  type SpaceRole struct {
    10  	Role string
    11  }
    12  
    13  func (SpaceRole) Complete(prefix string) []flags.Completion {
    14  	return completions([]string{"SpaceManager", "SpaceDeveloper", "SpaceAuditor"}, prefix, false)
    15  }
    16  
    17  func (s *SpaceRole) UnmarshalFlag(val string) error {
    18  	switch strings.ToLower(val) {
    19  	case "spaceauditor":
    20  		s.Role = "SpaceAuditor"
    21  	case "spacedeveloper":
    22  		s.Role = "SpaceDeveloper"
    23  	case "spacemanager":
    24  		s.Role = "SpaceManager"
    25  	default:
    26  		return &flags.Error{
    27  			Type:    flags.ErrRequired,
    28  			Message: `ROLE must be "SpaceManager", "SpaceDeveloper" and "SpaceAuditor"`,
    29  		}
    30  	}
    31  
    32  	return nil
    33  }