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  }