From c2ba09d322f7f8ce5558323bfd83349636d957f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20D=C3=ADaz-L=C3=B3pez?= Date: Fri, 3 Nov 2017 14:41:49 +0100 Subject: [PATCH] Added completion to profiles (#159) * Added completion to profiles * fixed the problem when aws files are not present --- commands/root.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/commands/root.go b/commands/root.go index cea5959d3..226dc7a06 100644 --- a/commands/root.go +++ b/commands/root.go @@ -51,6 +51,7 @@ func init() { RootCmd.PersistentFlags().StringVarP(&awsRegionGlobalFlag, "aws-region", "r", "", "Override AWS region temporarily for the current command") RootCmd.PersistentFlags().SetAnnotation("aws-region", cobra.BashCompCustom, []string{"__awless_region_list"}) RootCmd.PersistentFlags().StringVarP(&awsProfileGlobalFlag, "aws-profile", "p", "", "Override AWS profile temporarily for the current command") + RootCmd.PersistentFlags().SetAnnotation("aws-profile", cobra.BashCompCustom, []string{"__awless_profile_list"}) RootCmd.PersistentFlags().StringVar(&awsColorGlobalFlag, "color", "auto", "Force enabling/disabling colors in display (auto, never, always)") RootCmd.PersistentFlags().BoolVar(&networkMonitorFlag, "network-monitor", false, "Debug requests with network monitor") RootCmd.PersistentFlags().MarkHidden("network-monitor") @@ -181,5 +182,12 @@ __awless_region_list() COMPREPLY=( $(compgen -W "${regions}" -- ${cur}) ) } +__awless_profile_list() +{ + cur="${COMP_WORDS[COMP_CWORD]#*=}" + profiles="$((egrep '^\[ *[a-zA-Z0-9_-]+ *\]$' ~/.aws/credentials 2>/dev/null; grep '\[profile' ~/.aws/config 2>/dev/null | sed 's|\[profile ||g') | tr -d '[]' | sort | uniq)" + COMPREPLY=( $(compgen -W "${profiles}" -- ${cur}) ) +} + ` )