/
rvmsudo
executable file
·49 lines (40 loc) · 960 Bytes
/
rvmsudo
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
#!/usr/bin/env bash
sudo_args=()
while [[ $# -gt 0 ]] ; do
token="${1}"
#rvm trace flag
case "${token}" in
(--trace)
export PS4="+ \${BASH_SOURCE##\${rvm_path:-}} : \${FUNCNAME[0]:+\${FUNCNAME[0]}()} \${LINENO} > "
set -o xtrace
;;
#rvm verbose flag
(--verbose)
set -o verbose
;;
#not an rvm option, treat as sudo option
(-*)
sudo_args+=("$token")
#option with value
case "$token" in
(-g|-u|-p|-r|-t|-U|-C)
shift
#read & append the value
sudo_args+=("$1")
;;
esac
;;
#no more options skip processing
(*)
break
;;
esac
#go to next param
shift
done
if [[ $# -gt 0 ]]
then
eval command sudo \"\${sudo_args[@]}\" /usr/bin/env $(/usr/bin/env | GREP_OPTIONS="" \grep -E '^rvm|^gemset|^http_|^PATH|^IRBRC|RUBY|GEM' | sed 's/=\(.*\)$/="\1"/' ) \"\$@\"
else
printf "%b" "Usage:\n $0 [--trace] [--verbose] [sudo-options] command [command-options]\n"
fi