Skip to main content

configure AWS responsibly using profile names.

Project description

caws

configure AWS responsibly using profile names and environment vars.

rather than changing your AWS SDK credentials with aws configure, AWS suggests
setting the ENV var AWS_DEFAULT_PROFILE to a [profile] in your ~/.aws/credentials.
when set, this ENV var will over-ride the profile set with aws configure.

caws will write to an rc file setting AWS_DEFAULT_PROFILE to the given profile name.
if you do not have the rc file caws will create it for you.

you'll need to add . .cawsrc to your RC file (using bash: .bashrc or .bash_profile)

add new profiles using $ aws configure --profile newname

one benefit of using AWS_DEFAULT_PROFILE method instead of aws configure is the
ability to add which AWS profile you're currently using to your command prompt.

dependencies

python3
aws cli

usage

change AWS_DEFAULT_PROFILE to profilename
$ caws profilename

change AWS_DEFAULT_PROFILE to profilename and also update ~/.aws/credentials and ~/.aws/config
$ caws profilename --withcreds

show help and exit
$ caws -h

example bash usage

because python cannot source files on the parent process, caws has the unfortunate inability to update the ENV var it is updating.
therefore, a thin bash helper function can be used to run caws in the background:

kaws() {
 eval "caws $1 > /dev/null"
 . ~/.cawsrc  
}

example PS1 with colored path parts!

function color_path() {
    ROYGBIV=('\e[31m' '\e[38;5;208m' '\e[93m' '\e[92m' '\e[36m' '\e[94m' '\e[95m' '\e[97m' '\e[93m' '\e[38;5;208m' '\e[91m' '\e[95m' '\e[96m' '\e[34m' '\e[92m')
    explode_path=$(pwd)
    exploded=$(echo $explode_path | tr "/" "\n")
    final=""
    sep="/"
    x=0 
    for part in $exploded
    do  
        final+="${ROYGBIV[$x]}$sep$part\e[0m"
        x=$(expr $x + 1)
    done
    printf $final
}
parse_git_branch() {
    local b=$(git symbolic-ref HEAD 2> /dev/null)
    if [ "${b#refs/heads/}" != "" ]
    then
        printf " \e[38;5;208m(${b#refs/heads/})\e[0m"
    fi
}
PS1='\[\033[45m\]\u\[\033[0;96m\] aws:\[\033[92m\]$AWS_DEFAULT_PROFILE`parse_git_branch` \[\033[37m\]- `color_path`\[\033[37m\]\n$ \[\033[0m\]'

Usage Screep Cap

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caws-0.1.7.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

caws-0.1.7-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file caws-0.1.7.tar.gz.

File metadata

  • Download URL: caws-0.1.7.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.4

File hashes

Hashes for caws-0.1.7.tar.gz
Algorithm Hash digest
SHA256 75accd1172ef69ed8786ed8ff04dfcbe85c8f347a23b09e655bf97398e521c04
MD5 5189460749fe4fd337982fb6253d7538
BLAKE2b-256 71c7d47cd8dcc490653538f5b2f73a3f1792846c270328daf45afc363f9ab709

See more details on using hashes here.

File details

Details for the file caws-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: caws-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.4

File hashes

Hashes for caws-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 73938b4d7fd5ed34310a50cbb7a20d88fa692d5798ca57d63dd858d648cc1006
MD5 a726d9288426a2ea278b4d95ba149d72
BLAKE2b-256 096b6442257beb04b46dd0b4ee4729c59821e53797e5cda30d3f2f3ac9c692b3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page