@@ -27,6 +27,26 @@ func getEnvPipeline(repo string, id string) formatters.PipelineDetailsResponse {
27
27
28
28
}
29
29
30
+ func filterEnvsByName (envResJson * formatters.EnvResponse , envName string ) {
31
+
32
+ for _ , env := range envResJson .Values {
33
+ if env .Name == envName {
34
+ envResJson .Values = []formatters.Environment {env }
35
+ }
36
+ }
37
+
38
+ }
39
+
40
+ func filterEnvsByType (envResJson * formatters.EnvResponse , envType string ) {
41
+ envs := []formatters.Environment {}
42
+ for _ , env := range envResJson .Values {
43
+ if env .EnvironmentType .Name == envType {
44
+ envs = append (envs , env )
45
+ }
46
+ }
47
+ envResJson .Values = envs
48
+ }
49
+
30
50
var environmentCmd = & cobra.Command {
31
51
Use : "envs" ,
32
52
Short : "List environments" ,
@@ -51,9 +71,14 @@ var environmentCmd = &cobra.Command{
51
71
}
52
72
var envResJson formatters.EnvResponse
53
73
json .NewDecoder (envsRes .Body ).Decode (& envResJson )
54
- grouped , err := cmd .Flags ().GetBool ("grouped" )
55
- if err != nil {
56
- grouped = false
74
+
75
+ envName , err := cmd .Flags ().GetString ("name" )
76
+ envType , err := cmd .Flags ().GetString ("type" )
77
+ if envName != "" && err == nil {
78
+ filterEnvsByName (& envResJson , envName )
79
+ }
80
+ if envType != "" && err == nil {
81
+ filterEnvsByType (& envResJson , envType )
57
82
}
58
83
if envsRes .StatusCode != 200 {
59
84
bodyText , _ := io .ReadAll (envsRes .Body )
@@ -84,7 +109,7 @@ var environmentCmd = &cobra.Command{
84
109
}
85
110
86
111
if ! isCustomFormat {
87
- fmt .Println (formatters .FormatEnvs (envResJson , grouped ))
112
+ fmt .Println (formatters .FormatEnvs (envResJson ))
88
113
}
89
114
90
115
},
@@ -93,9 +118,10 @@ var environmentCmd = &cobra.Command{
93
118
func init () {
94
119
environmentCmd .PersistentFlags ().StringP ("repo" , "r" , "" , "Repo remote url" )
95
120
environmentCmd .Flags ().BoolP ("json" , "j" , false , "Output as json" )
96
- environmentCmd .Flags ().BoolP ("grouped" , "g" , true , "Group enviroments by type" )
97
121
environmentCmd .Flags ().StringP ("page" , "p" , "" , "Page number for environments pagination" )
98
122
environmentCmd .Flags ().StringP ("format" , "f" , "" , "Output template format" )
123
+ environmentCmd .Flags ().StringP ("name" , "n" , "" , "Filter environments by name" )
124
+ environmentCmd .Flags ().StringP ("type" , "t" , "" , "Filter environments by type" )
99
125
100
126
rootCmd .AddCommand (environmentCmd )
101
127
0 commit comments