github.com/Cloud-Foundations/Dominator@v0.3.4/lib/awsutil/flag.go (about) 1 package awsutil 2 3 import ( 4 "errors" 5 "strings" 6 ) 7 8 func (list *TargetList) string() string { 9 targets := make([]string, 0, len(*list)) 10 for _, target := range *list { 11 targets = append(targets, target.AccountName+","+target.Region) 12 } 13 return `"` + strings.Join(targets, ";") + `"` 14 } 15 16 func (list *TargetList) set(value string) error { 17 newList := make(TargetList, 0) 18 if value == "" { 19 *list = newList 20 return nil 21 } 22 for _, target := range strings.Split(value, ";") { 23 splitTarget := strings.Split(target, ",") 24 if len(splitTarget) != 2 { 25 return errors.New(`malformed target: "` + target + `"`) 26 } 27 account := splitTarget[0] 28 region := splitTarget[1] 29 if account == "*" { 30 account = "" 31 } 32 if region == "*" { 33 region = "" 34 } 35 newList = append(newList, Target{account, region}) 36 } 37 *list = newList 38 return nil 39 }