Skip to content

Instantly share code, notes, and snippets.

@guyc
Forked from mccutchen/export-aws-credentials
Last active December 29, 2017 02:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guyc/d517c15df6d6cbb94108f1413bc43e1a to your computer and use it in GitHub Desktop.
Save guyc/d517c15df6d6cbb94108f1413bc43e1a to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# When sourced, this script will export the AWS_ACCESS_KEY_ID and
# AWS_SECRET_ACCESS_KEY credentials from the a specific profile in
# ~/.aws/credentials.
#
# Usage:
#
# export-aws-credentials [PROFILE]
#
# If PROFILE is not given, the "default" profile will be exported. The
# output of this script is intended to be fed into `eval`.
#
# Examples:
#
# eval $(export-aws-credentials)
# eval $(export-aws-credentials other-profile)
[[ -z "$1" ]] && profile="default" || profile="$1"
credentials=$(grep -A 2 "$profile" ~/.aws/credentials | grep -v "$profile")
if [[ "$credentials" == "" ]]; then
echo "Error: profile '$profile' not found in ~/.aws/credentials" >&2
exit 1
fi
echo "Exporting profile: $profile" >&2
for key in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY; do
val=$(echo "$credentials" | grep -i $key | awk -F '= *' '{print $2}')
if [[ "$val" == "" ]]; then
echo " Error: missing $key" >&2
exit 1
fi
echo "export $key='$val'"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment