github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/command/flag/network_port.go (about) 1 package flag 2 3 import ( 4 "strconv" 5 "strings" 6 7 flags "github.com/jessevdk/go-flags" 8 ) 9 10 type NetworkPort struct { 11 StartPort int 12 EndPort int 13 } 14 15 func (np *NetworkPort) UnmarshalFlag(val string) error { 16 ports := strings.Split(val, "-") 17 18 var err error 19 np.StartPort, err = strconv.Atoi(ports[0]) 20 if err != nil { 21 return &flags.Error{ 22 Type: flags.ErrRequired, 23 Message: `PORT must be a positive integer`, 24 } 25 } 26 27 switch len(ports) { 28 case 1: 29 np.EndPort = np.StartPort 30 case 2: 31 np.EndPort, err = strconv.Atoi(ports[1]) 32 if err != nil { 33 return &flags.Error{ 34 Type: flags.ErrRequired, 35 Message: `PORT must be a positive integer`, 36 } 37 } 38 default: 39 return &flags.Error{ 40 Type: flags.ErrRequired, 41 Message: `PORT syntax must match integer[-integer]`, 42 } 43 } 44 45 return nil 46 }