-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathactivate
80 lines (68 loc) · 2.36 KB
/
activate
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
76
77
78
79
80
#https://unix.stackexchange.com/a/153061
VIRTUALIZE_SOURCED_NAME="${_:-$BASH_SOURCE}" # must do this first because of $_ ambiguity
if [ "${BASH_SOURCE-}" = "$0" ]; then
echo "You must source this script: \$ source $0" >&2
exit 33
fi
# workaround bash behavior when sourced files source other files
if [[ $VIRTUALIZE_SUBSOURCE ]]; then
VIRTUALIZE_SOURCED_NAME="$VIRTUALIZE_SUBSOURCE"
fi
if [[ $VIRTUALIZE_ROOT && ! $VIRTUALIZE_ACTIVATING ]]; then
echo "virtualizer is active, not activating" $VIRTUALIZE_SOURCED_NAME
unset VIRTUALIZE_SOURCED_NAME
return
fi
echo $VIRTUALIZE_SOURCED_NAME
VIRTUALIZE_NODE_DIR=$( cd -- "$( dirname -- "${VIRTUALIZE_SOURCED_NAME}" )" &> /dev/null && pwd )
export N_PREFIX="$VIRTUALIZE_NODE_DIR"/node
VIRTUALIZE_NODE_ORIG_PATH="$PATH"
export PATH="$VIRTUALIZE_ROOT/node_modules/.bin:$VIRTUALIZE_NODE_DIR/node/bin:$PATH"
VIRTUALIZE_NODE_ORIG_MANPATH="$MANPATH"
if [[ ! $MANPATH ]]; then
unset VIRTUALIZE_NODE_ORIG_MANPATH
MANPATH=$(manpath)
fi
export MANPATH="$VIRTUALIZE_NODE_DIR/node/share/man:$MANPATH"
function unactivate_node() {
PATH="$VIRTUALIZE_NODE_ORIG_PATH"
if [[ $VIRTUALIZE_NODE_ORIG_MANPATH ]]; then
MANPATH="$VIRTUALIZE_NODE_ORIG_MANPATH"
else
unset MANPATH
fi
unset VIRTUALIZE_NODE_ORIG_PATH
unset VIRTUALIZE_NODE_ORIG_MANPATH
unset N_PREFIX
unset VIRTUALIZE_SOURCED_NAME
unset VIRTUALIZE_NODE_DIR
}
# stop here if called on behalf of virtualize
if [[ $VIRTUALIZE_ACTIVATING ]]; then
# let virtualized deal with customizing the prompt
return
fi
###
### standalone mode only from here on
###
function unactivate() {
unactivate_node
unset -f unactivate_node
PS1="$VIRTUALIZE_NODE_ORIG_PS1"
unset VIRTUALIZE_NODE_ORIG_PS1
unset VIRTUALIZE_NODE_ACTIVE_VERSION
unset VIRTUALIZE_NODE_PREFIX
unset VIRTUALIZE_NODE_DISPLAY
unset -f unactivate
echo "unactivated $virtualize_root"
}
VIRTUALIZE_NODE_ORIG_PS1="$PS1"
VIRTUALIZE_NODE_ACTIVE_VERSION=`"$VIRTUALIZE_NODE_DIR"/node/bin/node --version`
VIRTUALIZE_NODE_DISPLAY="`echo "$VIRTUALIZE_NODE_DIR" | sed \"s%^$HOME/%%" | sed 's/\//·/g'` $VIRTUALIZE_NODE_ACTIVE_VERSION"
if [[ $ZSH_VERSION ]]; then
PS1="[$VIRTUALIZE_NODE_DISPLAY]$PS1"
else # for bash (and others?)
PS1="[$VIRTUALIZE_NODE_DISPLAY]\n$PS1"
fi
echo "node activated for $VIRTUALIZE_NODE_DIR"
echo "type 'unactivate' to undo"