mirror of
				https://github.com/akelge/zsh
				synced 2025-11-04 06:44:23 +00:00 
			
		
		
		
	Fix multimatch on awsprofile function
This commit is contained in:
		@ -1,5 +1,5 @@
 | 
			
		||||
profile=$1
 | 
			
		||||
shift
 | 
			
		||||
[ $# -gt 0 ] && shift
 | 
			
		||||
region=${1:-""}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,8 +9,14 @@ if [ ! -f ~/.aws/config ]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ $profile ]; then # We got a profile pattern, look for a match
 | 
			
		||||
  # look for an exact match
 | 
			
		||||
  grep -qE "\[profile $profile\]" ~/.aws/config
 | 
			
		||||
 | 
			
		||||
  if [ $? -eq 0 ]; then  # We have an exact match
 | 
			
		||||
    match=$profile
 | 
			
		||||
  else # Look for regex match
 | 
			
		||||
    match=$(grep -E "\[profile .*$profile.*" ~/.aws/config | sed -E 's/\[profile (.+)\]/\1/') # Array of matching profiles
 | 
			
		||||
  match_no=$(echo $match|wc -l) # Number of profile matching
 | 
			
		||||
    match_no=$(echo $match|wc -l) # Number of profiles matching
 | 
			
		||||
 | 
			
		||||
    if [ $match_no -gt 1 ]; then # more than one match
 | 
			
		||||
      print -P "$FX[bold]multiple profile match:"
 | 
			
		||||
@ -19,14 +25,21 @@ if [ $profile ]; then # We got a profile pattern, look for a match
 | 
			
		||||
      print -P "$FX[reset]"
 | 
			
		||||
      return
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ $match ]; then # Single match, setting profile
 | 
			
		||||
    export AWS_CLI_AUTO_PROMPT=on
 | 
			
		||||
    export AWS_CLI_AUTO_PROMPT=off
 | 
			
		||||
 | 
			
		||||
    # Set default profile and profile
 | 
			
		||||
    export AWS_DEFAULT_PROFILE=$match
 | 
			
		||||
    export AWS_PROFILE=${AWS_DEFAULT_PROFILE}
 | 
			
		||||
 | 
			
		||||
    # Get default region and set region to argument or default region
 | 
			
		||||
    export AWS_DEFAULT_REGION=$(aws configure get region)
 | 
			
		||||
    export AWS_PROFILE=$match
 | 
			
		||||
    export AWS_REGION=${region:-$AWS_DEFAULT_REGION}
 | 
			
		||||
 | 
			
		||||
    print -P "$FX[bold]activating profile $FG[075]$match$FX[reset]$FX[bold] on region $FG[075]$AWS_REGION$FX[reset]"
 | 
			
		||||
    export AWS_CLI_AUTO_PROMPT=on
 | 
			
		||||
    return
 | 
			
		||||
  else
 | 
			
		||||
    print -P "$FX[bold]$FG[009]no match for $profile$FX[reset]"
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user