Skip to content

Commit 50b7fa5

Browse files
committed
Fixed issue where account aliases do not get matched if yaml map has integer keys and are not implicitly wrapped in quotes
1 parent 6ecf4ba commit 50b7fa5

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

internal/root.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ func SelectRoleCredentialsStartingFromCache() (string, *credentials.Role) {
177177
return "", role
178178
}
179179

180+
func padAccountNumbers(aliases map[string]string) map[string]string {
181+
result := map[string]string{}
182+
for account, alias := range aliases {
183+
result[fmt.Sprintf("%012s", account)] = alias
184+
}
185+
return result
186+
}
187+
180188
func setupConfigFile() {
181189
if homeDir, err := os.UserHomeDir(); err == nil {
182190
os.MkdirAll(homeDir+"/.aws/knox", os.FileMode(0700))
@@ -197,8 +205,9 @@ func setupConfigFile() {
197205
tui.FilterStrategy = viper.GetString("filter_strategy")
198206
selectCachedFirst = viper.GetBool("select_cached_first")
199207
connectUid = viper.GetUint32("default_connect_uid")
200-
accountAliases = viper.GetStringMapString("account_aliases")
208+
accountAliases = padAccountNumbers( viper.GetStringMapString("account_aliases") )
201209
instanceColTags = viper.GetStringSlice("instance_col_tags")
210+
202211
}
203212

204213
func init() {

0 commit comments

Comments
 (0)