github.com/sleungcy-sap/cli@v7.1.0+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 }