#!/bin/bash

set -o ksh_arrays 2&> /dev/null || true

AWSUME_OUTPUT=($(awsumepy "$@"))
AWSUME_FLAG=$(echo "${AWSUME_OUTPUT[0]}" | tr -d '\r')

if [ "$AWSUME_FLAG" = "usage:" ]; then
  awsumepy "$@"


elif [ "$AWSUME_FLAG" = "Version" ]; then
  awsumepy "$@"


elif [ "$AWSUME_FLAG" = "Listing..." ]; then
  awsumepy "$@"


elif [ "$AWSUME_FLAG" = "Auto" ]; then
  unset AWS_SECRET_ACCESS_KEY
  unset AWS_SESSION_TOKEN
  unset AWS_SECURITY_TOKEN
  unset AWS_ACCESS_KEY_ID
  unset AWS_REGION
  unset AWS_DEFAULT_REGION
  unset AWS_PROFILE
  unset AWS_DEFAULT_PROFILE
  unset AWSUME_PROFILE
  export AWS_PROFILE=${AWSUME_OUTPUT[1]}
  export AWS_DEFAULT_PROFILE=${AWSUME_OUTPUT[1]}
  if [ ! "${AWSUME_OUTPUT[2]}" = "None" ]; then
    export AWS_REGION=${AWSUME_OUTPUT[2]}
    export AWS_DEFAULT_REGION=${AWSUME_OUTPUT[2]}
  fi
  if [ ! "${AWSUME_OUTPUT[3]}" = "None" ]; then
    export AWSUME_PROFILE=${AWSUME_OUTPUT[3]}
  fi
  #run the background autoawsume process
  autoawsume & disown


elif [ "$AWSUME_FLAG" = "Unset" ]; then
  unset AWS_PROFILE
  unset AWS_DEFAULT_PROFILE
  unset AWS_SECRET_ACCESS_KEY
  unset AWS_SESSION_TOKEN
  unset AWS_SECURITY_TOKEN
  unset AWS_ACCESS_KEY_ID
  unset AWS_REGION
  unset AWS_DEFAULT_REGION
  unset AWSUME_PROFILE
  for AWSUME_var in "$@"
  do
    if [[ "$AWSUME_var" == "-s"* ]]; then
      echo unset AWS_PROFILE
      echo unset AWS_DEFAULT_PROFILE
      echo unset AWS_SECRET_ACCESS_KEY
      echo unset AWS_SESSION_TOKEN
      echo unset AWS_SECURITY_TOKEN
      echo unset AWS_ACCESS_KEY_ID
      echo unset AWS_REGION
      echo unset AWS_DEFAULT_REGION
      echo unset AWSUME_PROFILE
    fi
  done
  return


elif [ "$AWSUME_FLAG" = "Kill" ]; then
  unset AWS_PROFILE
  unset AWS_DEFAULT_PROFILE
  unset AWS_SECRET_ACCESS_KEY
  unset AWS_SESSION_TOKEN
  unset AWS_SECURITY_TOKEN
  unset AWS_ACCESS_KEY_ID
  unset AWS_REGION
  unset AWS_DEFAULT_REGION
  unset AWSUME_PROFILE
  return


elif [ "$AWSUME_FLAG" = "Stop" ]; then
  if [ "auto-refresh-${AWSUME_OUTPUT[1]}" == "$AWS_PROFILE" ]; then
    unset AWS_PROFILE
    unset AWS_DEFAULT_PROFILE
  fi
  return


elif [ "$AWSUME_FLAG" = "Awsume" ]; then
  unset AWS_SECRET_ACCESS_KEY
  unset AWS_SESSION_TOKEN
  unset AWS_SECURITY_TOKEN
  unset AWS_ACCESS_KEY_ID
  unset AWS_REGION
  unset AWS_DEFAULT_REGION
  unset AWS_PROFILE
  unset AWS_DEFAULT_PROFILE
  unset AWSUME_PROFILE
  export AWS_ACCESS_KEY_ID=${AWSUME_OUTPUT[1]}
  export AWS_SECRET_ACCESS_KEY=${AWSUME_OUTPUT[2]}
  if [ ! "${AWSUME_OUTPUT[3]}" = "None" ]; then
    export AWS_SESSION_TOKEN=${AWSUME_OUTPUT[3]}
    export AWS_SECURITY_TOKEN=${AWSUME_OUTPUT[3]}
  fi
  if [ ! "${AWSUME_OUTPUT[4]}" = "None" ]; then
    export AWS_REGION=${AWSUME_OUTPUT[4]}
    export AWS_DEFAULT_REGION=${AWSUME_OUTPUT[4]}
  fi
  if [ ! "${AWSUME_OUTPUT[5]}" = "None" ]; then
    export AWSUME_PROFILE=${AWSUME_OUTPUT[5]}
  fi
  for AWSUME_var in "$@"
  do
    if [[ "$AWSUME_var" == "-s"* ]]; then
      echo export AWS_ACCESS_KEY_ID=${AWSUME_OUTPUT[1]}
      echo export AWS_SECRET_ACCESS_KEY=${AWSUME_OUTPUT[2]}
      if [ ! "${AWSUME_OUTPUT[3]}" = "None" ]; then
        echo export AWS_SESSION_TOKEN=${AWSUME_OUTPUT[3]}
        echo export AWS_SECURITY_TOKEN=${AWSUME_OUTPUT[3]}
      fi
      if [ ! "${AWSUME_OUTPUT[4]}" = "None" ]; then
        echo export AWS_REGION=${AWSUME_OUTPUT[4]}
        echo export AWS_DEFAULT_REGION=${AWSUME_OUTPUT[4]}
      fi
      if [ ! "${AWSUME_OUTPUT[5]}" = "None" ]; then
        echo export AWSUME_PROFILE=${AWSUME_OUTPUT[5]}
      fi
    fi
  done
fi
