File tree Expand file tree Collapse file tree 2 files changed +22
-16
lines changed Expand file tree Collapse file tree 2 files changed +22
-16
lines changed Original file line number Diff line number Diff line change @@ -62,9 +62,10 @@ func New(cloud *common.Cloud) *cobra.Command {
62
62
func (o * Options ) Run (cmd * cobra.Command , args []string , cloud * common.Cloud ) error {
63
63
variables := make (map [string ]* string )
64
64
for name , value := range o .Environment {
65
+ name = strings .ToUpper (name )
65
66
variables [name ] = nil
66
- if value != "" {
67
- variables [name ] = & value
67
+ if copy := value ; value != "" {
68
+ variables [name ] = & copy
68
69
}
69
70
}
70
71
Original file line number Diff line number Diff line change 1
1
package cmd
2
2
3
3
import (
4
+ "fmt"
4
5
"os"
5
6
"strings"
6
7
"time"
@@ -143,20 +144,24 @@ func New() *cobra.Command {
143
144
}
144
145
145
146
for _ , cmd := range append (cmd .Commands (), cmd ) {
146
- cobra .CheckErr (viper .BindPFlags (cmd .Flags ()))
147
- cobra .CheckErr (viper .BindPFlags (cmd .PersistentFlags ()))
148
-
149
- cmd .Flags ().VisitAll (func (f * pflag.Flag ) {
150
- if val := viper .GetString (f .Name ); viper .IsSet (f .Name ) && val != "" {
151
- cobra .CheckErr (cmd .Flags ().Set (f .Name , val ))
152
- }
153
- })
154
-
155
- cmd .PersistentFlags ().VisitAll (func (f * pflag.Flag ) {
156
- if val := viper .GetString (f .Name ); viper .IsSet (f .Name ) && val != "" {
157
- cobra .CheckErr (cmd .PersistentFlags ().Set (f .Name , val ))
158
- }
159
- })
147
+ for _ , flagSet := range []* pflag.FlagSet {
148
+ cmd .PersistentFlags (),
149
+ cmd .Flags (),
150
+ } {
151
+ cobra .CheckErr (viper .BindPFlags (flagSet ))
152
+ flagSet .VisitAll (func (f * pflag.Flag ) {
153
+ if viper .IsSet (f .Name ) {
154
+ switch val := viper .Get (f .Name ).(type ) {
155
+ case map [string ]interface {}:
156
+ for k , v := range val {
157
+ cobra .CheckErr (flagSet .Set (f .Name , fmt .Sprintf ("%s=%s" , k , v )))
158
+ }
159
+ default :
160
+ cobra .CheckErr (flagSet .Set (f .Name , viper .GetString (f .Name )))
161
+ }
162
+ }
163
+ })
164
+ }
160
165
}
161
166
162
167
return cmd
You can’t perform that action at this time.
0 commit comments