-
-
Notifications
You must be signed in to change notification settings - Fork 1k
/
after_cd_bundler
56 lines (52 loc) · 1.54 KB
/
after_cd_bundler
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
#!/usr/bin/env bash
BUNDLER_BIN_PATH=""
# see BUNDLE_BIN is set in the current directories .bundle/config
if grep BUNDLE_BIN .bundle/config >/dev/null 2>/dev/null
then
BUNDLER_BIN_PATH=$(grep BUNDLE_BIN .bundle/config | cut -d ' ' -f 2 -)
# Expand the bundler stub path
eval BUNDLER_BIN_PATH=$BUNDLER_BIN_PATH
if [[ $path[1] == $BUNDLER_BIN_PATH ]]
then
# Already there
echo Already on path
else
if [[ "${BUNDLER_BIN_PATH}" =~ "^$PWD" ]]
then
# Prompt the user before adding a bin directory in the current (project) directory to the path
echo -n "The bundler binstubs directory is in the current directory, this may be unsafe. Are you sure you want to add it to the path(Y/N)? "
trusted=0
while (( ! trusted ));do
printf "%s" ' Yes or No: [y/N]? '
read response
value="$(echo -n "${response}" | tr '[[:upper:]]' '[[:lower:]]' | __rvm_strip)"
case "${value:-n}" in
y|yes)
trusted=1
;;
n|no)
break
;;
esac
done
if (( trusted )); then
export PATH=$BUNDLER_BIN_PATH:$PATH
export LAST_BUNDLER_BIN_PATH=$BUNDLER_BIN_PATH
fi
else
export PATH=$BUNDLER_BIN_PATH:$PATH
export LAST_BUNDLER_BIN_PATH=$BUNDLER_BIN_PATH
fi
fi
else
# There is no BUNDLE_BIN setting
if [[ -n "${LAST_BUNDLER_BIN_PATH}" ]]
then
export PATH
PATH=":${PATH}:"
PATH="${PATH//:${LAST_BUNDLER_BIN_PATH}:/:}"
PATH="${PATH//::/:}"
PATH="${PATH#:}"
PATH="${PATH%:}"
fi
fi