mirror of
				https://github.com/akelge/zsh
				synced 2025-10-31 21:04:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			934 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			934 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| profile=$1
 | |
| 
 | |
| if [ $profile ]; then # We got a profile pattern, look for a 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
 | |
| 
 | |
|   if [ $match_no -gt 1 ]; then # more than one match
 | |
|     echo "Multiple profile match:"
 | |
|     echo $match
 | |
|     return
 | |
|   fi
 | |
| 
 | |
|   if [ $match ]; then # Single match, setting profile
 | |
|     echo "Activating profile $match"
 | |
|     export AWS_DEFAULT_PROFILE=$match
 | |
|     export AWS_PROFILE=$match
 | |
|     export AWS_EB_PROFILE=$match
 | |
|     return
 | |
|   else
 | |
|     echo "No match for $profile"
 | |
|     return
 | |
|   fi
 | |
| 
 | |
| elif [ $AWS_PROFILE ]; then # no profile passed, clean up current one, logout
 | |
|   unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE
 | |
|   echo profile cleared.
 | |
|   return
 | |
| fi
 | |
| 
 | |
| echo "Available profiles"
 | |
| grep profile ~/.aws/config | sed -E 's/\[profile (.+)\]/\1/'
 | |
| # vim: set ts=2 sw=2 tw=0 ft=sh :
 |