-
Notifications
You must be signed in to change notification settings - Fork 0
/
install
75 lines (69 loc) · 2.15 KB
/
install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
function do_require_command() {
local required_command="${1}"
command -v "${required_command}" >/dev/null 2>&1 || {
print_error "Require ${required_command} but it's not installed. Aborting."
exit 1;
}
}
do_require_command "git"
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if ! [ -f "${script_dir}/aws-profile.sh" ] ; then
if ! [ -d ~/.aws-profile/.git ] ; then
echo "Installing aws-profile via github..." >&2
git clone https://github.com/bytebutcher/aws-profile ~/.aws-profile/
else
echo "Updating aws-profile via github..." >&2
(cd ~/.aws-profile && git pull)
fi
else
mkdir -p ~/.aws-profile/
if ! [ -f ~/.aws-profile/aws-profile.sh ] ; then
echo "Installing aws-profile..." >&2
cp "${script_dir}/aws-profile.sh" ~/.aws-profile/
else
echo "Updating aws-profile..." >&2
cp "${script_dir}/aws-profile.sh" ~/.aws-profile/
fi
fi
if ! [ -f ~/.aws-profile/aws-profile.sh ] ; then
echo "ERROR: Installation of aws-profile failed!" >&2
exit 1
fi
cat <<EOF > ~/.aws-profile.bash
unalias aws-profile 2> /dev/null
aws-profile() {
case "\${1}" in
use )
if ~/.aws-profile/aws-profile.sh \$@ > /dev/null; then
echo "export AWS_PROFILE=\"\${2}\"" > ~/.aws-profile/current
source ~/.aws-profile/current &> /dev/null
aws configure list
return 0
fi
return 1
;;
reload )
source ~/.aws-profile/current &> /dev/null
;;
* )
aws-profile.sh \$@
;;
esac
}
export -f aws-profile &> /dev/null
export PATH=~/.aws-profile/:\${PATH}
source ~/.aws-profile/current &> /dev/null
EOF
if ! [ -f ~/.aws-profile.bash ] ; then
echo "ERROR: Installation of aws-profile failed!" >&2
exit 1
fi
if ! grep "\[ -f ~/.aws-profile.bash \] && source ~/.aws-profile.bash" ~/.bashrc > /dev/null; then
echo "[ -f ~/.aws-profile.bash ] && source ~/.aws-profile.bash" >> ~/.bashrc
fi
echo "Finished. Restart your shell or reload config file." >&2
[[ "$shells" =~ bash ]] && echo " source ~/.bashrc # bash"
#[[ "$shells" =~ zsh ]] && echo " source ${ZDOTDIR:-~}/.zshrc # zsh"
#[[ "$shells" =~ fish ]] && [ $key_bindings -eq 1 ] && echo " fzf_key_bindings # fish"
exit 0