File: rbenv-init

package info (click to toggle)
rbenv 1.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 380 kB
  • sloc: sh: 1,597; ansic: 60; ruby: 39; makefile: 25
file content (154 lines) | stat: -rwxr-xr-x 2,501 bytes parent folder | download | duplicates (2)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/usr/bin/env bash
# Summary: Configure the shell environment for rbenv
# Usage: eval "$(rbenv init - [--no-rehash] [<shell>])"

set -e
[ -n "$RBENV_DEBUG" ] && set -x

# Provide rbenv completions
if [ "$1" = "--complete" ]; then
  echo -
  echo --no-rehash
  echo bash
  echo fish
  echo ksh
  echo zsh
  exit
fi

print=""
no_rehash=""
for args in "$@"
do
  if [ "$args" = "-" ]; then
    print=1
    shift
  fi

  if [ "$args" = "--no-rehash" ]; then
    no_rehash=1
    shift
  fi
done

shell="$1"
if [ -z "$shell" ]; then
  shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
  shell="${shell%% *}"
  shell="${shell##-}"
  shell="${shell:-$SHELL}"
  shell="${shell##*/}"
fi

root="${0%/*}/.."

if [ -z "$print" ]; then
  case "$shell" in
  bash )
    if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then
      profile='~/.bashrc'
    else
      profile='~/.bash_profile'
    fi
    ;;
  zsh )
    profile='~/.zshrc'
    ;;
  ksh )
    profile='~/.profile'
    ;;
  fish )
    profile='~/.config/fish/config.fish'
    ;;
  * )
    profile='your profile'
    ;;
  esac

  { echo "# Load rbenv automatically by appending"
    echo "# the following to ${profile}:"
    echo
    case "$shell" in
    fish )
      echo 'status --is-interactive; and source (rbenv init -|psub)'
      ;;
    * )
      echo 'eval "$(rbenv init -)"'
      ;;
    esac
    echo
  } >&2

  exit 1
fi

mkdir -p "${RBENV_ROOT}/"{shims,versions}

case "$shell" in
fish )
  echo "set -gx PATH '${RBENV_ROOT}/shims' \$PATH"
  echo "set -gx RBENV_SHELL $shell"
;;
* )
  echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"'
  echo "export RBENV_SHELL=$shell"
;;
esac

completion="${root}/completions/rbenv.${shell}"
if [ -r "$completion" ]; then
  echo "source '$completion'"
fi

if [ -z "$no_rehash" ]; then
  echo 'command rbenv rehash 2>/dev/null'
fi

commands=(`rbenv-commands --sh`)
case "$shell" in
fish )
  cat <<EOS
function rbenv
  set command \$argv[1]
  set -e argv[1]

  switch "\$command"
  case ${commands[*]}
    source (rbenv "sh-\$command" \$argv|psub)
  case '*'
    command rbenv "\$command" \$argv
  end
end
EOS
  ;;
ksh )
  cat <<EOS
function rbenv {
  typeset command
EOS
  ;;
* )
  cat <<EOS
rbenv() {
  local command
EOS
  ;;
esac

if [ "$shell" != "fish" ]; then
IFS="|"
cat <<EOS
  command="\${1:-}"
  if [ "\$#" -gt 0 ]; then
    shift
  fi

  case "\$command" in
  ${commands[*]})
    eval "\$(rbenv "sh-\$command" "\$@")";;
  *)
    command rbenv "\$command" "\$@";;
  esac
}
EOS
fi