git.fiddlerwoaroof.com
shell-functions.zsh
3ddfc4b0
 ensure-aws-creds() {
   if [[ -f "$HOME/.cj-aws" ]]; then
     source "$HOME/.cj-aws"
     export AWS_ACCESS_KEY_ID
     export AWS_SECRET_ACCESS_KEY
     export AWS_SESSION_TOKEN
   fi
 }
 
 cleanup-cred-file() {
   echo "Cleaning up old credentials."
   rm -f "$HOME/.cj-aws"
 }
 
 aws-end-session() {
   cleanup-cred-file
 
   unset AWS_ACCESS_KEY_ID
   unset AWS_SECRET_ACCESS_KEY
   unset AWS_SESSION_TOKEN
 }
 
 aws-open-console() {
   open "$(aws-get-url-inline)"
 }
 
 aws-get-url-inline() {
   python3 <<EOF
 import http.client
 import json
 import urllib.parse
 
 result = json.dumps({
   "sessionId": "$AWS_ACCESS_KEY_ID",
   "sessionKey": "$AWS_SECRET_ACCESS_KEY",
   "sessionToken": "$AWS_SESSION_TOKEN"
 })
 
 path = '/federation?Action=getSigninToken&Session=' + urllib.parse.quote_plus(result, safe="")
 
 conn = http.client.HTTPSConnection("signin.aws.amazon.com")
 conn.request("GET", path)
 rq = conn.getresponse()
 
 if rq.status != 200:
   raise Exception('request failed because %s', rq.reason)
 
 data = json.load(rq)
 signin_token = data['SigninToken']
 
 print('https://signin.aws.amazon.com/federation?Action=login&Destination=https%3A%2F%2Fconsole.aws.amazon.com&SigninToken='+signin_token)
 EOF
 }