func ls()

in cli/cmd/ls.go [34:94]


func ls(cmd *cobra.Command, args []string) {
	if Project == "" {
		altProjectSources()
	}

	filterQuery := make(map[string]string, 0)
	for _, param := range stackFilter {
		vals := strings.Split(param, "=")
		if len(vals) == 2 {
			key := vals[0]
			if !strings.HasPrefix(key, "latestOperation") {
				key = strings.ToLower(vals[0])
				if key == "initiator" {
					key = "latestOperation.initiator"
				}
			}
			filterQuery[key] = vals[1]
		}
	}

	req, err := NewRequest()
	if err != nil {
		fmt.Printf("Error: %s", err)
		return
	}

	resp, err := req.
		SetQueryParams(filterQuery).
		Get(baseURL())
	if err != nil {
		fmt.Printf("Error: %s", err)
		return
	}

	if resp.IsSuccess() {
		if Out == JsonO {
			var pretty bytes.Buffer
			err = json.Indent(&pretty, resp.Body(), "", "\t")
			if err != nil {
				fmt.Printf("Failed indent json body: %s", err)
				return
			}
			fmt.Println(pretty.String())
			return
		}
		var states []State
		json.Unmarshal(resp.Body(), &states)
		limit := 20
		if len(states) < limit {
			limit = len(states)
		}
		if len(states) > 0 {
			tableFmtStates(states[:limit])
			return
		}
		fmt.Println("Nothing has been found")
		return
	}
	fmt.Printf("Error: %s", resp.Status())
	return
}