aws.plugin.zsh 1.95 KB
Newer Older
David Kane's avatar
David Kane committed
1
2
# AWS profile selection

3
function agp {
4
  echo $AWS_PROFILE
5
}
6

7
8
function asp {
  export AWS_DEFAULT_PROFILE=$1
9
  export AWS_PROFILE=$1
10
  export AWS_EB_PROFILE=$1
11

David Kane's avatar
David Kane committed
12
13
14
  if [[ -z "$1" ]]; then
    echo AWS profile cleared.
  fi
15
}
16

17
function aws_change_access_key {
18
19
  if [[ -z "$1" ]] then
    echo "usage: $0 <profile>"
20
21
    return 1
  fi
22
23
24
25
26
27
28
29
30

  echo Insert the credentials when asked.
  asp "$1"
  aws iam create-access-key
  aws configure --profile "$1"

  echo You can now safely delete the old access key running \`aws iam delete-access-key --access-key-id ID\`
  echo Your current keys are:
  aws iam list-access-keys
31
32
}

33
function aws_profiles {
34
  reply=($(grep '\[profile' "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9_\.-]*\).*/\1/'))
35
}
36
compctl -K aws_profiles asp aws_change_access_key
37

38

David Kane's avatar
David Kane committed
39
40
41
42
43
44
45
46
# AWS prompt

function aws_prompt_info() {
  [[ -z $AWS_PROFILE ]] && return
  echo "${ZSH_THEME_AWS_PREFIX:=<aws:}${AWS_PROFILE}${ZSH_THEME_AWS_SUFFIX:=>}"
}

if [ "$SHOW_AWS_PROMPT" != false ]; then
47
  RPROMPT='$(aws_prompt_info)'"$RPROMPT"
David Kane's avatar
David Kane committed
48
49
50
fi


51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Load awscli completions

_awscli-homebrew-installed() {
  # check if Homebrew is installed
  (( $+commands[brew] )) || return 1

  # speculatively check default brew prefix
  if [ -h /usr/local/opt/awscli ]; then
    _brew_prefix=/usr/local/opt/awscli
  else
    # ok, it is not in the default prefix
    # this call to brew is expensive (about 400 ms), so at least let's make it only once
    _brew_prefix=$(brew --prefix awscli)
  fi
}

# get aws_zsh_completer.sh location from $PATH
_aws_zsh_completer_path="$commands[aws_zsh_completer.sh]"

# otherwise check if installed via Homebrew
if [[ -z $_aws_zsh_completer_path ]] && _awscli-homebrew-installed; then
72
  _aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh
73
74
else
  _aws_zsh_completer_path=/usr/share/zsh/site-functions/aws_zsh_completer.sh
75
fi
Superbil's avatar
Superbil committed
76

77
78
[[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path
unset _aws_zsh_completer_path _brew_prefix