rvm 0.0.58 → 0.0.59
Sign up to get free protection for your applications and to get access to all the features.
- data/install +3 -3
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +2 -2
- data/scripts/cli +19 -10
- data/scripts/completion +1 -1
- data/scripts/gems +100 -67
- data/scripts/install +3 -3
- data/scripts/ruby-installer +7 -17
- data/scripts/rvm-install +3 -3
- data/scripts/selector +19 -12
- data/scripts/update +3 -3
- data/scripts/utility +33 -18
- metadata +2 -2
data/install
CHANGED
@@ -76,16 +76,16 @@ fi
|
|
76
76
|
system="$(uname)"
|
77
77
|
echo -e "\n $(tput setaf 3)NOTES: $(tput sgr0)\n"
|
78
78
|
if [ "Linux" = "$system" ] ; then
|
79
|
-
rvm_apt_get_binary="$(which
|
79
|
+
rvm_apt_get_binary="$(which aptitude 2> /dev/null)"
|
80
80
|
rvm_emerge_binary="$(which emerge 2> /dev/null)"
|
81
81
|
rvm_pacman_binary="$(which pacman 2> /dev/null)"
|
82
82
|
rvm_yum_binary="$(which yum 2> /dev/null)"
|
83
83
|
|
84
84
|
if [ ! -z "$rvm_apt_get_binary" ] ; then
|
85
85
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
86
|
-
echo -e " $ sudo
|
86
|
+
echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
|
87
87
|
echo -e " $item For ree (if you wish to use it) you will need:"
|
88
|
-
echo -e " $ sudo
|
88
|
+
echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
|
89
89
|
|
90
90
|
elif [ ! -z "$rvm_emerge_binary" ] ; then
|
91
91
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
data/lib/VERSION.yml
CHANGED
data/rvm.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rvm}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.59"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Wayne E. Seguin"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-16}
|
13
13
|
s.default_executable = %q{rvm-install}
|
14
14
|
s.description = %q{Manages Ruby interpreter installations and switching between them.}
|
15
15
|
s.email = %q{wayneeseguin@gmail.com}
|
data/scripts/cli
CHANGED
@@ -5,7 +5,7 @@ function __rvm_meta {
|
|
5
5
|
rvm_meta_author_email="wayneeseguin@gmail.com"
|
6
6
|
rvm_meta_website="http://rvm.beginrescueend.com/"
|
7
7
|
rvm_meta_version="$(cat $rvm_path/lib/VERSION.yml | tail -n 3 | sed 's/^.*: //g' | tr "\n" '.' | sed 's/\.$//')"
|
8
|
-
rvm_meta_updated="2009.10.
|
8
|
+
rvm_meta_updated="2009.10.16"
|
9
9
|
}
|
10
10
|
|
11
11
|
function __rvm_version { __rvm_meta ; echo "rvm $rvm_meta_version ($rvm_meta_updated) [$rvm_meta_website]" ; }
|
@@ -100,7 +100,7 @@ Resources:
|
|
100
100
|
http://rvm.beginrescueend.com/
|
101
101
|
https://www.pivotaltracker.com/projects/26822
|
102
102
|
|
103
|
-
" | ${PAGER
|
103
|
+
" | ${PAGER:-less}
|
104
104
|
}
|
105
105
|
|
106
106
|
function __rvm_parse_args {
|
@@ -131,11 +131,11 @@ function __rvm_parse_args {
|
|
131
131
|
rvm_ruby_interpreter="$rvm_token"
|
132
132
|
;;
|
133
133
|
|
134
|
-
# TODO: if $1 is a $version string nab it and shift
|
135
134
|
jruby|ree|macruby|rbx|rubinius|default|all)
|
136
135
|
rvm_ruby_interpreter="$rvm_token"
|
137
136
|
rvm_action="${rvm_action:-use}"
|
138
|
-
if [ ! -z "$(echo $1 | awk '/^[0-9]/')" ] ; then
|
137
|
+
#if [ ! -z "$(echo $1 | awk '/^[0-9]/')" ] ; then
|
138
|
+
if [[ $1 =~ ^[0-9] ]] ; then
|
139
139
|
rvm_ruby_version=$1 ; shift
|
140
140
|
fi
|
141
141
|
;;
|
@@ -375,18 +375,24 @@ function __rvm_parse_args {
|
|
375
375
|
*)
|
376
376
|
if [ ! -z "$rvm_token" ] ; then
|
377
377
|
if [ "gems" = "$rvm_action" ] ; then
|
378
|
-
if [ -z "$(echo $rvm_token | awk '/\.gems$/')" ] ; then
|
379
|
-
rvm_gem_set_name=$(echo $rvm_token | sed 's/\.gems//g')
|
380
|
-
else
|
378
|
+
if [ ! -z "$(echo $rvm_token | awk '/\.gems$/')" ] ; then
|
381
379
|
rvm_file_name="$(echo $rvm_token | sed 's/\.gems//g').gems"
|
380
|
+
# elif [ ! -z "$(echo $rvm_token | awk '/\.gems$/')" ] ; then
|
381
|
+
else
|
382
|
+
rvm_gem_set_name="$(echo $rvm_token | sed 's/\.gems//g')"
|
383
|
+
rvm_file_name="$rvm_gem_set_name.gems"
|
382
384
|
fi
|
383
385
|
elif [ ! -z "$(echo $rvm_token | awk '/,/')" ] ; then
|
384
386
|
rvm_ruby_version="$rvm_token"
|
385
387
|
if [ -z "$rvm_action" ] ; then
|
386
388
|
rvm_action="do" # Not sure if we really want to do this but we'll try it out.
|
387
389
|
fi
|
390
|
+
elif [ ! -z "$(echo $rvm_token | awk '/^.+%.+$/')" ] ; then
|
391
|
+
rvm_gem_set_name="$(echo $rvm_token | awk -F'%' '{print $2}')"
|
392
|
+
rvm_ruby_string="$(echo $rvm_token | awk -F'%' '{print $1}')"
|
388
393
|
else
|
389
|
-
if [ ! -z "$(echo $rvm_token | awk '/\.rb$/{print}'
|
394
|
+
if [ ! -z "$(echo $rvm_token | awk '/\.rb$/{print}')" ] ; then # we have a specified ruby script
|
395
|
+
#if [[ ! $rvm_token =~ \.rb$ ]] ; then # we have a specified ruby script
|
390
396
|
rvm_ruby_args=$rvm_token
|
391
397
|
rvm_ruby_file=$rvm_token
|
392
398
|
if [ -z "$rvm_action" ] ; then
|
@@ -406,6 +412,9 @@ function __rvm_parse_args {
|
|
406
412
|
fi
|
407
413
|
|
408
414
|
esac
|
415
|
+
|
416
|
+
if [ -z "$rvm_action" -a ! -z "$rvm_ruby_string" ] ; then rvm_action="use" ; fi
|
417
|
+
|
409
418
|
if [ ! -z "$rvm_parse_break" -o ! -z "$rvm_error_message" ] ; then unset rvm_parse_break; break; fi
|
410
419
|
done
|
411
420
|
|
@@ -414,10 +423,10 @@ function __rvm_parse_args {
|
|
414
423
|
|
415
424
|
function rvm {
|
416
425
|
|
417
|
-
trap '__rvm_cleanup_variables ; rm -
|
426
|
+
trap '__rvm_cleanup_variables ; rm -rf "/tmp/rvm/$$" >/dev/null 2>&1' 0 1 2 3 15
|
418
427
|
|
419
428
|
__rvm_cleanup_variables
|
420
|
-
|
429
|
+
__rvm_load_rvmrc
|
421
430
|
__rvm_initialize
|
422
431
|
__rvm_load_defaults
|
423
432
|
__rvm_parse_args $@
|
data/scripts/completion
CHANGED
data/scripts/gems
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#!/bin/bash
|
2
|
+
|
2
3
|
__rvm_gems() {
|
3
|
-
|
4
|
+
unset GEM_PATH
|
5
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
4
6
|
|
5
7
|
if [ ! -z "$rvm_use_flag" ] ; then
|
6
8
|
__rvm_gems_use
|
@@ -23,14 +25,16 @@ __rvm_gems() {
|
|
23
25
|
|
24
26
|
__rvm_gems_select() {
|
25
27
|
if [ -z "$rvm_gem_set_name" ] ; then
|
26
|
-
if [ ! -z "$
|
27
|
-
rvm_gem_set_name=$(echo $
|
28
|
+
if [ ! -z "$GEM_HOME" ] ; then
|
29
|
+
rvm_gem_set_name=$(echo $GEM_HOME | xargs basename | awk -F'%' '{print $2}')
|
28
30
|
fi
|
29
31
|
|
30
|
-
if [ -z "$
|
32
|
+
if [ ! -z "$rvm_ruby_gem_home" ] ; then
|
33
|
+
rvm_gem_set_name=$(echo $rvm_ruby_gem_home | xargs basename | awk -F'%' '{print $2}')
|
34
|
+
fi
|
31
35
|
|
32
|
-
if [ ! -z "$rvm_gem_set_name"
|
33
|
-
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version
|
36
|
+
if [ ! -z "$rvm_gem_set_name" ] && [[ ! "$rvm_gem_set_name" =~ ^\d\.\d ]] ; then
|
37
|
+
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
|
34
38
|
else
|
35
39
|
if [ ! -z "$rvm_ruby_interpreter" -a ! -z "$rvm_ruby_version" -a "$rvm_ruby_interpreter" != "system" ] ; then
|
36
40
|
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version"
|
@@ -42,25 +46,28 @@ __rvm_gems_select() {
|
|
42
46
|
__rvm_log "error" "Cannot select gem home, something definitely wrong :/"
|
43
47
|
fi
|
44
48
|
fi
|
49
|
+
if [ -z "$rvm_gem_set_name" ] ; then unset rvm_gem_set_name ; fi
|
45
50
|
else
|
46
|
-
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version
|
51
|
+
rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
|
47
52
|
fi
|
48
53
|
}
|
49
54
|
|
50
55
|
__rvm_gems_use() {
|
51
|
-
|
56
|
+
mkdir -p "$rvm_ruby_gem_home" ; GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME
|
52
57
|
}
|
53
58
|
|
54
59
|
__rvm_gems_name() {
|
55
|
-
|
60
|
+
echo "$rvm_gem_set_name"
|
56
61
|
}
|
57
62
|
|
58
63
|
__rvm_gems_dir() {
|
59
|
-
|
64
|
+
echo "$rvm_ruby_gem_home"
|
60
65
|
}
|
61
66
|
|
62
67
|
__rvm_gems_list() {
|
63
|
-
|
68
|
+
for gemdir in "$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%"* ; do
|
69
|
+
echo "$gemdir" | awk -F'%' '{print $2}'
|
70
|
+
done
|
64
71
|
}
|
65
72
|
|
66
73
|
__rvm_gems_clear() {
|
@@ -71,11 +78,20 @@ __rvm_gems_clear() {
|
|
71
78
|
}
|
72
79
|
|
73
80
|
__rvm_gems_dump() {
|
74
|
-
if [ -z "$
|
75
|
-
|
76
|
-
|
77
|
-
|
81
|
+
if [ ! -z "$rvm_ruby_gem_home" ] ; then
|
82
|
+
GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME ;
|
83
|
+
GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH ;
|
84
|
+
fi
|
85
|
+
|
86
|
+
if [ -z "$rvm_file_name" ] ; then
|
87
|
+
if [ ! -z "$rvm_gem_set_name" ] ; then
|
88
|
+
rvm_file_name="$rvm_gem_set_name.gems"
|
89
|
+
else
|
90
|
+
rvm_file_name="default.gems"
|
91
|
+
fi
|
92
|
+
fi
|
78
93
|
|
94
|
+
touch $rvm_file_name
|
79
95
|
echo "# $rvm_file_name generated gem dump file. Note that any env variable settings will be missing. Append these after using a ';' field separator" > $rvm_file_name
|
80
96
|
|
81
97
|
for gem in $(gem list | sed 's/[\(|\)]//g' | sed 's/, /,/g' | tr ' ' ';') ; do
|
@@ -92,70 +108,87 @@ __rvm_gems_dump() {
|
|
92
108
|
}
|
93
109
|
|
94
110
|
__rvm_gems_load() {
|
95
|
-
if [ -z "$
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
gem_name="$(echo $gem | awk '{print $1}')"
|
108
|
-
gem_version="$(echo $gem | sed 's/^.*-v[=]*[ ]*//' | awk '{print $1}')"
|
109
|
-
gem_postfix="$(echo $gem | sed "s/$gem_name//" | sed "s/-v[=]*[ ]*$gem_version//")"
|
110
|
-
|
111
|
-
if [ -f "$gem" ] ; then
|
112
|
-
gem_file_name="${gem}"
|
113
|
-
elif [ -z "$gem_version" ] ; then # no version
|
114
|
-
gem_file_name="${gem_name}*.gem"
|
115
|
-
else # version
|
116
|
-
gem_file_name="$gem_name-$gem_version.gem"
|
111
|
+
if [ ! -z "$rvm_ruby_gem_home" ] ; then
|
112
|
+
GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME ;
|
113
|
+
GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH ;
|
114
|
+
fi
|
115
|
+
|
116
|
+
if [ -z "$rvm_file_name" ] ; then
|
117
|
+
if [ -f "$rvm_gem_set_name.gems" ] ; then
|
118
|
+
rvm_file_name="$rvm_gem_set_name.gems"
|
119
|
+
elif [ -f "default.gems" ] ; then
|
120
|
+
rvm_file_name="default.gems"
|
121
|
+
elif [ -f "system.gems" ] ; then
|
122
|
+
rvm_file_name="system.gems"
|
117
123
|
fi
|
124
|
+
fi
|
118
125
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
126
|
+
if [ -f "$rvm_file_name" ] ; then
|
127
|
+
echo "Loading $rvm_file_name file..."
|
128
|
+
rvm_ruby_gem_list=$(/bin/ls $rvm_ruby_gem_home/specifications/ 2> /dev/null | sed 's/\.gemspec$//' 2> /dev/null)
|
129
|
+
while read line
|
130
|
+
do # Keep this on 2nd line :( bash fail.
|
131
|
+
# TODO: Switch to a different field separator than ; to allow for evals
|
132
|
+
gem="$(echo $line | awk -F';' '{print $1}')"
|
133
|
+
gem_prefix="$(echo $line | awk -F';' '{print $2}')"
|
134
|
+
gem_name="$(echo $gem | awk '{print $1}')"
|
135
|
+
gem_version="$(echo $gem | sed 's/^.*-v[=]*[ ]*//' | awk '{print $1}')"
|
136
|
+
gem_postfix="$(echo $gem | sed "s/$gem_name//" | sed "s/-v[=]*[ ]*$gem_version//")"
|
137
|
+
|
138
|
+
if [ -f "$gem" ] ; then
|
139
|
+
gem_file_name="${gem}"
|
140
|
+
elif [[ "$gem" =~ ".gem$" ]] ; then
|
141
|
+
gem_file_name="${gem}"
|
142
|
+
elif [ -z "$gem_version" ] ; then # no version
|
143
|
+
gem_file_name="${gem_name}*.gem"
|
144
|
+
else # version
|
145
|
+
gem_file_name="$gem_name-$gem_version.gem"
|
125
146
|
fi
|
126
|
-
|
127
|
-
gem_file_name
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
gem="$
|
147
|
+
|
148
|
+
cache_file=$(/bin/ls -t "$rvm_gem_path/*/*/cache/${gem_file_name}*" 2> /dev/null | head -n1)
|
149
|
+
if [ -z "$cache_file" ] ; then
|
150
|
+
if [ -f "$gem_file_name" ] ; then
|
151
|
+
gem="$gem_file_name"
|
152
|
+
elif [ -z "$gem_version" ] ; then
|
153
|
+
gem="$gem_name"
|
133
154
|
else
|
134
|
-
|
135
|
-
|
155
|
+
gem="$gem_name -v $gem_version"
|
156
|
+
fi
|
157
|
+
else # cached
|
158
|
+
gem_file_name="$(basename $cache_file)"
|
159
|
+
gem_string="$(echo "$gem_file_name" | sed 's/\.gem$//')"
|
160
|
+
if [ ! -z "$(echo "$rvm_ruby_gem_list" | awk "/$gem_string/{print}")" ] ; then
|
161
|
+
#if [[ $rvm_ruby_gem_list =~ $gem_string ]] ; then
|
162
|
+
if [ ! -z "$rvm_force_flag" ] ; then
|
163
|
+
cp $cache_file $rvm_temp_path/$gem_file_name
|
164
|
+
gem="$rvm_temp_path/$gem_file_name" # install as a named local gem
|
165
|
+
else
|
166
|
+
unset gem
|
167
|
+
__rvm_log "info" "$gem_name $gem_version is already installed, skipping. (use --force to force these to install regardless)"
|
168
|
+
fi
|
169
|
+
else
|
170
|
+
gem="$cache_file"
|
136
171
|
fi
|
137
|
-
else
|
138
|
-
gem="$cache_file"
|
139
172
|
fi
|
140
|
-
fi
|
141
173
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
174
|
+
if [ ! -z "$gem" ] ; then
|
175
|
+
# TODO: Set vars if fourth field is non-empty (means that there are conditional statements to execute in the gem install line.
|
176
|
+
if [ -z "$vars" ] ; then
|
177
|
+
GEM_HOME="$rvm_ruby_gem_home" GEM_PATH="$rvm_ruby_gem_home" $gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix
|
178
|
+
else
|
179
|
+
eval "GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' $gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix"
|
180
|
+
fi
|
148
181
|
fi
|
149
|
-
|
150
|
-
|
151
|
-
|
182
|
+
unset gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string
|
183
|
+
done < <(awk '/^[\.\/a-zA-Z]/{print}' "$rvm_file_name")
|
184
|
+
else
|
185
|
+
__rvm_log "error" "$rvm_file_name does not exist to load from."
|
186
|
+
fi
|
152
187
|
}
|
153
188
|
|
154
189
|
__rvm_gems_delete () {
|
155
|
-
if [ -z "$rvm_selected_flag" ] ; then __rvm_select $* ; fi
|
156
|
-
__rvm_gems_select
|
157
190
|
if [ ! -z "$rvm_gem_set_name" ] ; then
|
158
|
-
gemdir="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version
|
191
|
+
gemdir="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
|
159
192
|
if [ -d "$gemdir" -a ! -z "$rvm_force_flag" ] ; then
|
160
193
|
rm -rf "$gemdir"
|
161
194
|
elif [ -d "$gemdir" ] ; then
|
data/scripts/install
CHANGED
@@ -76,16 +76,16 @@ fi
|
|
76
76
|
system="$(uname)"
|
77
77
|
echo -e "\n $(tput setaf 3)NOTES: $(tput sgr0)\n"
|
78
78
|
if [ "Linux" = "$system" ] ; then
|
79
|
-
rvm_apt_get_binary="$(which
|
79
|
+
rvm_apt_get_binary="$(which aptitude 2> /dev/null)"
|
80
80
|
rvm_emerge_binary="$(which emerge 2> /dev/null)"
|
81
81
|
rvm_pacman_binary="$(which pacman 2> /dev/null)"
|
82
82
|
rvm_yum_binary="$(which yum 2> /dev/null)"
|
83
83
|
|
84
84
|
if [ ! -z "$rvm_apt_get_binary" ] ; then
|
85
85
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
86
|
-
echo -e " $ sudo
|
86
|
+
echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
|
87
87
|
echo -e " $item For ree (if you wish to use it) you will need:"
|
88
|
-
echo -e " $ sudo
|
88
|
+
echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
|
89
89
|
|
90
90
|
elif [ ! -z "$rvm_emerge_binary" ] ; then
|
91
91
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
data/scripts/ruby-installer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
3
|
function __rvm_install_source {
|
4
|
-
if [ -z "$
|
4
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
5
5
|
__rvm_log "info" "Installing Ruby from source to: $rvm_ruby_home"
|
6
6
|
mkdir -p "$rvm_ruby_log_path"
|
7
7
|
|
@@ -44,7 +44,7 @@ function __rvm_install_source {
|
|
44
44
|
rvm_url="$rvm_ruby_repo_url/tags/$rvm_ruby_tag"
|
45
45
|
rvm_rev=""
|
46
46
|
else
|
47
|
-
if [ "head" = "$rvm_ruby_revision" -o "trunk" = "$rvm_ruby_revision"] ; then
|
47
|
+
if [ "head" = "$rvm_ruby_revision" -o "trunk" = "$rvm_ruby_revision" ] ; then
|
48
48
|
rvm_url="$rvm_ruby_repo_url/trunk"
|
49
49
|
rvm_rev=""
|
50
50
|
else
|
@@ -117,7 +117,7 @@ function __rvm_install_source {
|
|
117
117
|
|
118
118
|
function __rvm_install_ruby {
|
119
119
|
|
120
|
-
if [ -z "$
|
120
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
121
121
|
if [ ! -z "$RUBYOPT" ] ; then ruby_options="$RUBYOPT" ; unset RUBYOPT ; fi
|
122
122
|
if [ "$(uname)" = "Darwin" ] ; then ARCHFLAGS="$rvm_archflags" ; export ARCHFLAGS ; fi
|
123
123
|
|
@@ -140,7 +140,7 @@ function __rvm_install_ruby {
|
|
140
140
|
rvm_url="$(__rvm_db "ree_${rvm_ruby_version}_url")/$rvm_ruby_package_file.tar.gz"
|
141
141
|
__rvm_log "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
|
142
142
|
__rvm_pushpop "$rvm_src_path"
|
143
|
-
if [ -z "$rvm_force_flag" -a -d "$rvm_ruby_src_path" -a ! -
|
143
|
+
if [ -z "$rvm_force_flag" -a -d "$rvm_ruby_src_path" -a ! -x "$rvm_ruby_src_path/installer" ] ; then
|
144
144
|
__rvm_log "It appears that the archive has already been extracted. Skipping extract (use --force to force re-download and extract)."
|
145
145
|
else
|
146
146
|
__rvm_log "Downloading $rvm_ruby_package_file, this may take a while depending on your connection..."
|
@@ -328,15 +328,6 @@ RubyWrapper
|
|
328
328
|
;;
|
329
329
|
|
330
330
|
ruby)
|
331
|
-
#if [ "$(uname)" = "Darwin" ] ; then
|
332
|
-
# if [ "$(echo $rvm_ruby_version | awk '/1\.8/')" ] ; then
|
333
|
-
# rvm_ruby_configure="${rvm_ruby_configure:-"--enable-shared"} "
|
334
|
-
# else
|
335
|
-
# rvm_ruby_configure="${rvm_ruby_configure:-"--enable-shared"} "
|
336
|
-
# fi
|
337
|
-
#else
|
338
|
-
# rvm_ruby_configure="${rvm_ruby_configure:-"--enable-pthread"} "
|
339
|
-
#fi
|
340
331
|
__rvm_install_source $*
|
341
332
|
;;
|
342
333
|
|
@@ -359,8 +350,7 @@ function __rvm_manage_rubies {
|
|
359
350
|
unset rvm_ruby_interpreter rvm_ruby_version
|
360
351
|
__rvm_${rvm_action}_ruby
|
361
352
|
elif [ ! -z "$rvm_ruby_version" ] ;then
|
362
|
-
for
|
363
|
-
unset rvm_ruby_string
|
353
|
+
for rvm_ruby_string in $(echo $rvm_ruby_version | tr ',' ' ') ; do
|
364
354
|
__rvm_${rvm_action}_ruby
|
365
355
|
__rvm_unset_ruby_variables
|
366
356
|
done
|
@@ -389,7 +379,7 @@ function __rvm_manage_rubies {
|
|
389
379
|
}
|
390
380
|
|
391
381
|
function __rvm_uninstall_ruby {
|
392
|
-
if [ -z "$
|
382
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
393
383
|
|
394
384
|
if [ ! -z "$rvm_ruby_package_name" ] ; then
|
395
385
|
for dir in $rvm_path ; do
|
@@ -410,7 +400,7 @@ function __rvm_uninstall_ruby {
|
|
410
400
|
}
|
411
401
|
|
412
402
|
function __rvm_remove_ruby {
|
413
|
-
if [ -z "$
|
403
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
414
404
|
|
415
405
|
if [ ! -z "$rvm_ruby_package_name" ] ; then
|
416
406
|
for dir in $rvm_src_path $rvm_path ; do
|
data/scripts/rvm-install
CHANGED
@@ -76,16 +76,16 @@ fi
|
|
76
76
|
system="$(uname)"
|
77
77
|
echo -e "\n $(tput setaf 3)NOTES: $(tput sgr0)\n"
|
78
78
|
if [ "Linux" = "$system" ] ; then
|
79
|
-
rvm_apt_get_binary="$(which
|
79
|
+
rvm_apt_get_binary="$(which aptitude 2> /dev/null)"
|
80
80
|
rvm_emerge_binary="$(which emerge 2> /dev/null)"
|
81
81
|
rvm_pacman_binary="$(which pacman 2> /dev/null)"
|
82
82
|
rvm_yum_binary="$(which yum 2> /dev/null)"
|
83
83
|
|
84
84
|
if [ ! -z "$rvm_apt_get_binary" ] ; then
|
85
85
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
86
|
-
echo -e " $ sudo
|
86
|
+
echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
|
87
87
|
echo -e " $item For ree (if you wish to use it) you will need:"
|
88
|
-
echo -e " $ sudo
|
88
|
+
echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
|
89
89
|
|
90
90
|
elif [ ! -z "$rvm_emerge_binary" ] ; then
|
91
91
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
data/scripts/selector
CHANGED
@@ -3,13 +3,16 @@
|
|
3
3
|
# __rvm_select implementation version patch_level
|
4
4
|
function __rvm_select {
|
5
5
|
if [ ! -z "$rvm_ruby_string" ] ; then
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
if [ ! -z "$(echo "$rvm_ruby_string" | awk '/^.+%.+$/')" ] ; then
|
7
|
+
rvm_gem_set_name="$(echo "$rvm_ruby_string" | awk -F'%' '{print $2}')"
|
8
|
+
rvm_ruby_string="$(echo "$rvm_ruby_string" | awk -F'%' '{print $1}')"
|
9
|
+
fi
|
10
|
+
|
11
|
+
if [ ! -z "$(echo "$rvm_ruby_string" | awk '/^[0-9]/')" ] ; then
|
9
12
|
rvm_ruby_interpreter="${rvm_ruby_interpreter:-ruby}"
|
10
|
-
rvm_ruby_version=$
|
13
|
+
rvm_ruby_version=$rvm_ruby_string
|
11
14
|
else
|
12
|
-
rvm_ruby_interpreter="$
|
15
|
+
rvm_ruby_interpreter="$rvm_ruby_string"
|
13
16
|
unset rvm_ruby_version
|
14
17
|
fi
|
15
18
|
elif [ ! -z "$rvm_ruby_interpreter" ] ; then
|
@@ -21,6 +24,7 @@ function __rvm_select {
|
|
21
24
|
fi
|
22
25
|
fi
|
23
26
|
|
27
|
+
if [ ! -z "$rvm_ruby_string" ] ; then __rvm_ruby_string ; fi
|
24
28
|
if [ "1.8" = "$rvm_ruby_version" ] ; then rvm_ruby_version="1.8.6" ; fi
|
25
29
|
if [ "1.9" = "$rvm_ruby_version" ] ; then rvm_ruby_version="1.9.1" ; fi
|
26
30
|
|
@@ -72,7 +76,7 @@ function __rvm_select {
|
|
72
76
|
ruby-enterprise|ree)
|
73
77
|
rvm_ruby_interpreter=ree
|
74
78
|
rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ree_version")"}
|
75
|
-
rvm_ruby_patch_level="${rvm_ruby_revision:-"$(__rvm_db "ree_${rvm_ruby_version}_patch_level")
|
79
|
+
rvm_ruby_patch_level="${rvm_ruby_revision:-"$(__rvm_db "ree_${rvm_ruby_version}_patch_level")"}"
|
76
80
|
rvm_ruby_package_name="ree-$rvm_ruby_version-$rvm_ruby_patch_level"
|
77
81
|
rvm_ruby_package_file="ruby-enterprise-$rvm_ruby_version-$rvm_ruby_patch_level"
|
78
82
|
if [ -z "$(echo $rvm_ruby_version | awk '/^1\.8/')" ] ; then
|
@@ -122,8 +126,6 @@ function __rvm_select {
|
|
122
126
|
rvm_major_version=$(echo $rvm_ruby_version | awk -F'.' '{ print $2 }')
|
123
127
|
rvm_minor_version=$(echo $rvm_ruby_version | awk -F'.' '{ print $3 }')
|
124
128
|
|
125
|
-
__rvm_gems_select
|
126
|
-
|
127
129
|
if [ -z "$rvm_ruby_patch_level" ] ; then
|
128
130
|
rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_interpreter-$rvm_ruby_version"}"
|
129
131
|
rvm_ruby_home="${rvm_ruby_home:-"$rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version"}"
|
@@ -143,16 +145,16 @@ function __rvm_select {
|
|
143
145
|
rvm_ruby_src_path="$rvm_src_path/$rvm_ruby_string"
|
144
146
|
rvm_ruby_binary="$rvm_ruby_home/bin/ruby"
|
145
147
|
rvm_ruby_irbrc="$rvm_ruby_home/.irbrc"
|
146
|
-
|
148
|
+
rvm_ruby_selected_flag=1
|
147
149
|
|
148
|
-
export rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_url rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_gem_set_name rvm_gem_path rvm_ruby_gem_home rvm_path rvm_src_path rvm_bin_path rvm_ruby_binary rvm_ruby_home rvm_log_path rvm_ruby_log_path rvm_src_path rvm_ruby_src_path rvm_ruby_irbrc
|
150
|
+
export rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_url rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_gem_set_name rvm_gem_path rvm_ruby_gem_home rvm_path rvm_src_path rvm_bin_path rvm_ruby_binary rvm_ruby_home rvm_log_path rvm_ruby_log_path rvm_src_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag rvm_ruby_string
|
149
151
|
else
|
150
152
|
rvm_ruby_gem_home=$GEM_HOME
|
151
153
|
fi
|
152
154
|
}
|
153
155
|
|
154
156
|
function __rvm_use {
|
155
|
-
if [ -z "$
|
157
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
156
158
|
if [ -z "$rvm_ruby_interpreter" ] ; then rvm_ruby_interpreter="default" ; fi
|
157
159
|
|
158
160
|
if [ "default" = "$rvm_ruby_interpreter" ] ; then
|
@@ -245,7 +247,12 @@ function __rvm_ruby_string {
|
|
245
247
|
if [ "system" = "$rvm_ruby_interpreter" ] ; then
|
246
248
|
rvm_ruby_string="system"
|
247
249
|
elif [ ! -z "$rvm_ruby_string" ] ; then
|
248
|
-
ruby_string=$(echo "$rvm_ruby_string" | sed 's/ruby-enterprise/ree/g') # dash-antics
|
250
|
+
ruby_string=$(echo "$rvm_ruby_string" | sed 's/ruby-enterprise/ree/g') # dash-antics
|
251
|
+
if [ ! -z "$(echo "$rvm_ruby_string" | awk -F'%' '{print $2}')" ] ; then
|
252
|
+
rvm_gem_set_name=$(echo "$rvm_ruby_string" | awk -F'%' '{print $2}')
|
253
|
+
fi
|
254
|
+
set +x
|
255
|
+
ruby_string=$(echo "$rvm_ruby_string" | awk -F'%' '{print $1}')
|
249
256
|
__rvm_unset_ruby_variables
|
250
257
|
|
251
258
|
rvm_ruby_interpreter=$(echo $ruby_string | awk -F'-' '{print $1}')
|
data/scripts/update
CHANGED
@@ -76,16 +76,16 @@ fi
|
|
76
76
|
system="$(uname)"
|
77
77
|
echo -e "\n $(tput setaf 3)NOTES: $(tput sgr0)\n"
|
78
78
|
if [ "Linux" = "$system" ] ; then
|
79
|
-
rvm_apt_get_binary="$(which
|
79
|
+
rvm_apt_get_binary="$(which aptitude 2> /dev/null)"
|
80
80
|
rvm_emerge_binary="$(which emerge 2> /dev/null)"
|
81
81
|
rvm_pacman_binary="$(which pacman 2> /dev/null)"
|
82
82
|
rvm_yum_binary="$(which yum 2> /dev/null)"
|
83
83
|
|
84
84
|
if [ ! -z "$rvm_apt_get_binary" ] ; then
|
85
85
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
86
|
-
echo -e " $ sudo
|
86
|
+
echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
|
87
87
|
echo -e " $item For ree (if you wish to use it) you will need:"
|
88
|
-
echo -e " $ sudo
|
88
|
+
echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
|
89
89
|
|
90
90
|
elif [ ! -z "$rvm_emerge_binary" ] ; then
|
91
91
|
echo -e " $item For jRuby (if you wish to use it) you will need:"
|
data/scripts/utility
CHANGED
@@ -63,9 +63,7 @@ function __rvm_log {
|
|
63
63
|
message=$1
|
64
64
|
case "$level" in
|
65
65
|
debug) shift ;
|
66
|
-
|
67
|
-
echo -e "$(tput setaf 5)<d>$(tput sgr0) $message $(tput setaf 5)</d> $(tput sgr0) "
|
68
|
-
fi
|
66
|
+
((rvm_debug_flag)) && echo -e "$(tput setaf 5)<d>$(tput sgr0) $message $(tput setaf 5)</d> $(tput sgr0) "
|
69
67
|
;;
|
70
68
|
info) shift ; echo -e "$(tput setaf 2)<i>$(tput sgr0) $message $(tput setaf 2)</i> $(tput sgr0) " ;;
|
71
69
|
warn) shift ; echo -e "$(tput setaf 3)<w>$(tput sgr0) $message $(tput setaf 3)</w> $(tput sgr0) " ;;
|
@@ -84,7 +82,7 @@ __rvm_push() {
|
|
84
82
|
unset array item
|
85
83
|
}
|
86
84
|
|
87
|
-
function
|
85
|
+
function __rvm_clean_path {
|
88
86
|
PATH=$(echo $PATH | tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | tr -s '\n' ':' | sed 's/:$//')
|
89
87
|
export PATH
|
90
88
|
}
|
@@ -116,15 +114,15 @@ function __rvm_run {
|
|
116
114
|
|
117
115
|
function __rvm_cleanup_variables {
|
118
116
|
__rvm_unset_ruby_variables
|
119
|
-
unset
|
117
|
+
unset rvm_ruby_selected_flag rvm_action rvm_irbrc_file rvm_src_path rvm_path rvm_prefix_path rvm_gem_path rvm_command rvm_error_message rvm_gem_set_name rvm_url rvm_config_path rvm_bin_path rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_load_flag rvm_dump_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_head_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_log_path rvm_file_name
|
120
118
|
}
|
121
119
|
|
122
120
|
function __rvm_unset_ruby_variables {
|
123
|
-
unset rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc
|
121
|
+
unset rvm_ruby_interpreter rvm_ruby_version rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_patch_level rvm_ruby_configure rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag rvm_ruby_string rvm_ruby_string rvm_ruby_src_path rvm_ruby_repo_url rvm_major_version rvm_minor_version rvm_ruby_gem_home
|
124
122
|
}
|
125
123
|
|
126
124
|
# TODO: root user loadng of /etc/rvmrc
|
127
|
-
function
|
125
|
+
function __rvm_load_rvmrc {
|
128
126
|
if [ -s ~/.rvmrc ] ; then source ~/.rvmrc ; fi
|
129
127
|
}
|
130
128
|
|
@@ -139,7 +137,7 @@ function __rvm_bin_scripts {
|
|
139
137
|
}
|
140
138
|
|
141
139
|
function __rvm_bin_script {
|
142
|
-
if [ -z "$
|
140
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
143
141
|
ruby_wrapper=$(cat <<RubyWrapper
|
144
142
|
#!/bin/bash
|
145
143
|
|
@@ -294,13 +292,13 @@ function __rvm_implode {
|
|
294
292
|
}
|
295
293
|
|
296
294
|
function __rvm_gemdir {
|
297
|
-
if [ -z "$
|
295
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
298
296
|
mkdir -p $rvm_ruby_gem_home
|
299
297
|
echo $rvm_ruby_gem_home
|
300
298
|
}
|
301
299
|
|
302
300
|
function __rvm_source_dir {
|
303
|
-
if [ -z "$
|
301
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
304
302
|
if [ -z "$rvm_ruby_src_path" ] ; then
|
305
303
|
__rvm_log "fail" "No source directory exists for the default implementation."
|
306
304
|
else
|
@@ -311,7 +309,7 @@ function __rvm_source_dir {
|
|
311
309
|
# clones from source implementation/version to default
|
312
310
|
# TODO: Merge this into 'rvm sync'
|
313
311
|
function __rvm_gemdup {
|
314
|
-
if [ -z "$
|
312
|
+
if [ -z "$rvm_ruby_selected_flag" ] ; then __rvm_select $* ; fi
|
315
313
|
__rvm_log "debug" "$rvm_ruby_interpreter"
|
316
314
|
if [ "default" = "$rvm_ruby_interpreter" ] ; then
|
317
315
|
# TODO: ~/.rvm/default first, then system user
|
@@ -474,7 +472,7 @@ function __rvm_initialize {
|
|
474
472
|
|
475
473
|
if [ "Darwin" = "$(uname)" ] ; then rvm_archflags="${rvm_archflags:-'-arch i386 -arch x86_64'}" ; fi
|
476
474
|
|
477
|
-
|
475
|
+
__rvm_clean_path
|
478
476
|
rvm_result=$(echo $PATH | grep 'rvm\/bin:')
|
479
477
|
if [ -z $rvm_result ] ; then
|
480
478
|
PATH=$rvm_bin_path:$PATH ; export PATH
|
@@ -541,11 +539,11 @@ function __rvm_reboot {
|
|
541
539
|
fi ; unset response
|
542
540
|
}
|
543
541
|
|
544
|
-
|
542
|
+
__rvm_reload() {
|
545
543
|
source $rvm_path/scripts/rvm
|
546
544
|
}
|
547
545
|
|
548
|
-
|
546
|
+
__rvm_ruby_do() {
|
549
547
|
__rvm_select
|
550
548
|
__rvm_use
|
551
549
|
binary="$(echo $rvm_action | sed 's/do$//')"
|
@@ -553,7 +551,11 @@ function __rvm_ruby_do {
|
|
553
551
|
load_path="$rvm_ruby_home/bin:$rvm_ruby_load_path"
|
554
552
|
if [ "ruby" = "$binary" ] ; then
|
555
553
|
if [ -z "$(echo $rvm_ruby_args | awk '/\.rb$/')" ] ; then
|
556
|
-
rvm_ruby_args
|
554
|
+
#if [[ $rvm_ruby_args =~ '\.rb$' ]] ; then
|
555
|
+
if [ -z "$prefix" ] ; then prefix="-S" ; fi
|
556
|
+
if [[ ! $rvm_ruby_args =~ $prefix ]] ; then
|
557
|
+
rvm_ruby_args="$prefix $rvm_ruby_args"
|
558
|
+
fi
|
557
559
|
fi
|
558
560
|
rvm_command="$rvm_ruby_home/bin/$binary $rvm_ruby_require -I$load_path $rvm_ruby_args"
|
559
561
|
else
|
@@ -591,8 +593,7 @@ function __rvm_do {
|
|
591
593
|
unset rvm_ruby_interpreter rvm_ruby_version
|
592
594
|
__rvm_ruby_do
|
593
595
|
elif [ ! -z "$rvm_ruby_version" ] ;then
|
594
|
-
for
|
595
|
-
unset rvm_ruby_string
|
596
|
+
for rvm_ruby_string in $(echo $rvm_ruby_version | tr ',' ' ') ; do
|
596
597
|
__rvm_ruby_do
|
597
598
|
done
|
598
599
|
elif [ ! -z "$rvm_ruby_interpreter" ] ; then
|
@@ -717,7 +718,7 @@ function __rvm_pushpop {
|
|
717
718
|
if [ -z "$1" ] ; then
|
718
719
|
popd > /dev/null 2>&1
|
719
720
|
else
|
720
|
-
pushd $1 > /dev/null 2>&1
|
721
|
+
pushd "$1" > /dev/null 2>&1
|
721
722
|
fi
|
722
723
|
}
|
723
724
|
|
@@ -795,6 +796,9 @@ __rvm_monitor() {
|
|
795
796
|
fi
|
796
797
|
}
|
797
798
|
|
799
|
+
#
|
800
|
+
# Actual Utility functions.
|
801
|
+
#
|
798
802
|
timestamp() {
|
799
803
|
if [ "Darwin" = "$(uname)" ] ; then
|
800
804
|
echo $(stat -c "%Y" $1)
|
@@ -803,3 +807,14 @@ timestamp() {
|
|
803
807
|
fi
|
804
808
|
}
|
805
809
|
|
810
|
+
# Usage: contains "a_string" "${an_array[@]}"
|
811
|
+
contains() {
|
812
|
+
local pattern="$1" ; shift
|
813
|
+
local index list
|
814
|
+
list=("$@")
|
815
|
+
for index in "${!list[@]}" ; do
|
816
|
+
[[ ${list[index]} = $pattern ]] && { echo $index ; return 0 ; }
|
817
|
+
done
|
818
|
+
echo -1 ; return 1
|
819
|
+
}
|
820
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.59
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne E. Seguin
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-16 00:00:00 -04:00
|
13
13
|
default_executable: rvm-install
|
14
14
|
dependencies: []
|
15
15
|
|