gemrage 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +5 -0
  3. data/VERSION +1 -1
  4. data/gemrage.gemspec +148 -3
  5. data/lib/rubygems/commands/scan_command.rb +77 -4
  6. data/vendor/ruby/1.8/bin/rvm-install +19 -0
  7. data/vendor/ruby/1.8/cache/macaddr-1.0.0.gem +0 -0
  8. data/vendor/ruby/1.8/cache/rvm-1.0.14.gem +0 -0
  9. data/vendor/ruby/1.8/gems/macaddr-1.0.0/README +33 -0
  10. data/vendor/ruby/1.8/gems/macaddr-1.0.0/gemspec.rb +27 -0
  11. data/vendor/ruby/1.8/gems/macaddr-1.0.0/install.rb +210 -0
  12. data/vendor/ruby/1.8/gems/macaddr-1.0.0/lib/macaddr.rb +69 -0
  13. data/vendor/ruby/1.8/gems/rvm-1.0.14/LICENCE +18 -0
  14. data/vendor/ruby/1.8/gems/rvm-1.0.14/README +127 -0
  15. data/vendor/ruby/1.8/gems/rvm-1.0.14/bin/rvm-install +5 -0
  16. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm +76 -0
  17. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-auto-ruby +24 -0
  18. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-prompt +204 -0
  19. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-shell +35 -0
  20. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-update-head +35 -0
  21. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvm-update-latest +27 -0
  22. data/vendor/ruby/1.8/gems/rvm-1.0.14/binscripts/rvmsudo +24 -0
  23. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/db +71 -0
  24. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/known +55 -0
  25. data/vendor/ruby/1.8/gems/rvm-1.0.14/config/md5 +87 -0
  26. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/gemset_snapshot +25 -0
  27. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/install-system-wide +191 -0
  28. data/vendor/ruby/1.8/gems/rvm-1.0.14/contrib/r +44 -0
  29. data/vendor/ruby/1.8/gems/rvm-1.0.14/examples/rvmrc +47 -0
  30. data/vendor/ruby/1.8/gems/rvm-1.0.14/gemsets/default.gems +1 -0
  31. data/vendor/ruby/1.8/gems/rvm-1.0.14/gemsets/global.gems +1 -0
  32. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/alias +46 -0
  33. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/benchmark +17 -0
  34. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/cleanup +23 -0
  35. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/debug +8 -0
  36. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/disk-usage +15 -0
  37. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/docs +22 -0
  38. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/exec +33 -0
  39. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/fetch +5 -0
  40. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gem +0 -0
  41. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gemdir +0 -0
  42. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/gemset +0 -0
  43. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/implode +0 -0
  44. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/info +64 -0
  45. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/install +0 -0
  46. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/list +0 -0
  47. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/migrate +15 -0
  48. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/monitor +0 -0
  49. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/notes +0 -0
  50. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/package +0 -0
  51. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rake +14 -0
  52. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/remove +0 -0
  53. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/repair +23 -0
  54. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/reset +0 -0
  55. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/ruby +84 -0
  56. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rubygems +11 -0
  57. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/rvmrc +34 -0
  58. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/snapshot +15 -0
  59. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/specs +0 -0
  60. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/srcdir +0 -0
  61. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/tests +0 -0
  62. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/tools +22 -0
  63. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/uninstall +0 -0
  64. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/update +0 -0
  65. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/upgrade +18 -0
  66. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/use +0 -0
  67. data/vendor/ruby/1.8/gems/rvm-1.0.14/help/wrapper +41 -0
  68. data/vendor/ruby/1.8/gems/rvm-1.0.14/install +631 -0
  69. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/VERSION.yml +4 -0
  70. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/capistrano.rb +45 -0
  71. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/alias.rb +69 -0
  72. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/cleanup.rb +54 -0
  73. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/configuration.rb +60 -0
  74. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/env.rb +52 -0
  75. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/gemset.rb +222 -0
  76. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/info.rb +13 -0
  77. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/list.rb +124 -0
  78. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/rubies.rb +50 -0
  79. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/sets.rb +123 -0
  80. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/tools.rb +68 -0
  81. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/utility.rb +173 -0
  82. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment/wrapper.rb +23 -0
  83. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/environment.rb +64 -0
  84. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/errors.rb +31 -0
  85. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/install_command_dumper.rb +51 -0
  86. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/abstract_wrapper.rb +145 -0
  87. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/calculate_rvm_path.sh +26 -0
  88. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/result.rb +42 -0
  89. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/shell_wrapper.sh +10 -0
  90. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/single_shot_wrapper.rb +56 -0
  91. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell/utility.rb +37 -0
  92. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/shell.rb +25 -0
  93. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm/version.rb +19 -0
  94. data/vendor/ruby/1.8/gems/rvm-1.0.14/lib/rvm.rb +156 -0
  95. data/vendor/ruby/1.8/gems/rvm-1.0.14/man/man1/rvm.1 +385 -0
  96. data/vendor/ruby/1.8/gems/rvm-1.0.14/man/man1/rvm.1.gz +0 -0
  97. data/vendor/ruby/1.8/gems/rvm-1.0.14/rvm.gemspec +184 -0
  98. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/alias +225 -0
  99. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/aliases +4 -0
  100. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/array +32 -0
  101. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/base +49 -0
  102. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cd +87 -0
  103. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cleanup +58 -0
  104. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/cli +781 -0
  105. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/color +49 -0
  106. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/completion +151 -0
  107. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/db +87 -0
  108. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/default +64 -0
  109. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/disk-usage +60 -0
  110. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/docs +115 -0
  111. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/env +46 -0
  112. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/environment-convertor +74 -0
  113. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/fetch +229 -0
  114. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/gemsets +950 -0
  115. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/hash +37 -0
  116. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/help +46 -0
  117. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/hook +23 -0
  118. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/info +214 -0
  119. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/initialize +29 -0
  120. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/install +631 -0
  121. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/irbrc +9 -0
  122. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/irbrc.rb +63 -0
  123. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/list +315 -0
  124. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/log +38 -0
  125. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/maglev +193 -0
  126. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/manage +2094 -0
  127. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/match +6 -0
  128. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/md5 +22 -0
  129. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/migrate +175 -0
  130. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/monitor +105 -0
  131. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/notes +121 -0
  132. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/override_gem +14 -0
  133. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/package +301 -0
  134. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/patches +64 -0
  135. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/patchsets +87 -0
  136. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/repair +199 -0
  137. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rubygems +157 -0
  138. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rvm +120 -0
  139. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/rvm-install +631 -0
  140. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/selector +818 -0
  141. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/set +301 -0
  142. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/snapshot +262 -0
  143. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/tools +58 -0
  144. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/update +631 -0
  145. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/upgrade +144 -0
  146. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/utility +1557 -0
  147. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/version +17 -0
  148. data/vendor/ruby/1.8/gems/rvm-1.0.14/scripts/wrapper +210 -0
  149. data/vendor/ruby/1.8/specifications/macaddr-1.0.0.gemspec +27 -0
  150. data/vendor/ruby/1.8/specifications/rvm-1.0.14.gemspec +42 -0
  151. metadata +149 -4
@@ -0,0 +1,950 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source "$rvm_path/scripts/base"
4
+
5
+ rvm_ruby_gem_home="${rvm_ruby_gem_home:-$GEM_HOME}"
6
+
7
+ if [[ ! -d "$rvm_ruby_gem_home" ]] && command -v gem > /dev/null 2>&1; then rvm_ruby_gem_home="$(gem env home)" ; fi
8
+
9
+ usage()
10
+ {
11
+ printf "
12
+ Usage:
13
+
14
+ rvm gemset [action]
15
+
16
+ Action:
17
+
18
+ {import,export,create,copy,empty,delete,name,dir,list,gemdir,install,pristine,clear,use,update,unpack,globalcache}
19
+
20
+ Description:
21
+
22
+ Commands for working with and manipulating gemsets within RVM.
23
+
24
+ "
25
+ }
26
+
27
+ gemset_update()
28
+ {
29
+
30
+ if [[ -z "$rvm_ruby_strings" ]]; then
31
+
32
+ "$rvm_path/scripts/log" "info" "Running gem update for all rubies and gemsets."
33
+
34
+ rvm_ruby_strings="$(builtin cd "${rvm_gems_path:-"$rvm_path/gems"}" ; find . -maxdepth 1 -mindepth 1 -type d -print 2>/dev/null | grep -v '^\(doc\|cache\|@\|system\)' | \tr '\n' ',')"
35
+
36
+ rvm_ruby_strings="${rvm_ruby_strings/%,}"
37
+
38
+ rvm_ruby_strings="${rvm_ruby_strings//.\/}"
39
+
40
+ else
41
+ "$rvm_path/scripts/log" "info" "Running gem update for the specified rubies."
42
+ fi
43
+
44
+ export rvm_ruby_strings
45
+
46
+ "$rvm_path/scripts/set" "gem" "update"
47
+
48
+ return $?
49
+ }
50
+
51
+ gemset_globalcache()
52
+ {
53
+ local gc_status globalcache_enabled directories directory_name full_directory_path directory_name
54
+
55
+ if [[ "$1" == "enabled" ]]; then
56
+
57
+ __rvm_using_gemset_globalcache
58
+
59
+ globalcache_enabled=$?
60
+
61
+ gc_status="Unknown"
62
+
63
+ if [[ $globalcache_enabled -eq 0 ]]; then
64
+ gc_status="Enabled"
65
+ else
66
+ gc_status="Disabled"
67
+ fi
68
+
69
+ "$rvm_path/scripts/log" "info" \
70
+ "Gemset global cache is currently: $gc_status"
71
+
72
+ return "$globalcache_enabled"
73
+
74
+ elif [[ "$1" == "disable" ]]; then
75
+
76
+ "$rvm_path/scripts/log" "info" \
77
+ "Removing the global cache (note: this will empty the caches)"
78
+
79
+ directories=($(builtin cd "${rvm_gems_path:-"$rvm_path/gems"}" ; find . -maxdepth 1 -mindepth 1 -type d -print))
80
+
81
+ for directory_name in "${directories[@]//.\/}"; do
82
+
83
+ current_cache_path="${rvm_gems_path:-"$rvm_path/gems"}/$directory_name/cache"
84
+
85
+ if [[ -L "$current_cache_path" && "$(readlink "$current_cache_path")" == "$rvm_gems_cache_path" ]]; then
86
+
87
+ "$rvm_path/scripts/log" "info" \
88
+ "Reverting the gem cache for $directory_name to an empty directory."
89
+
90
+ rm -f "$current_cache_path" 2>/dev/null
91
+
92
+ mkdir -p "$current_cache_path" 2>/dev/null
93
+ fi
94
+ done
95
+
96
+ "$rvm_path/scripts/db" "$rvm_path/config/user" "use_gemset_globalcache" "delete"
97
+
98
+ elif [[ "$1" == "enable" ]]; then
99
+
100
+ "$rvm_path/scripts/log" "info" \
101
+ "Enabling global cache for gems."
102
+
103
+ mkdir -p "$rvm_gems_cache_path"
104
+
105
+ directories=($(builtin cd "${rvm_gems_path:-"$rvm_path/gems"}" ; find . -maxdepth 1 -mindepth 1 -type d -print))
106
+
107
+ for directory_name in "${directories[@]//.\/}" ; do
108
+
109
+ current_cache_path="${rvm_gems_path:-"$rvm_path/gems"}/$directory_name/cache"
110
+
111
+ if [[ -d "$current_cache_path" && ! -L "$current_cache_path" ]]; then
112
+
113
+ "$rvm_path/scripts/log" "info" "Moving the gem cache for $directory_name to the global cache."
114
+
115
+ mv "$current_cache_path/"*.gem "$rvm_gems_cache_path/" 2>/dev/null
116
+
117
+ rm -rf "$current_cache_path"
118
+
119
+ ln -nfs "$rvm_gems_cache_path" "$current_cache_path"
120
+ fi
121
+
122
+ done
123
+
124
+ "$rvm_path/scripts/db" "$rvm_path/config/user" "use_gemset_globalcache" "true"
125
+
126
+ else
127
+ printf "
128
+
129
+ Usage:
130
+
131
+ rvm gemset globalcache {enable,disable}
132
+
133
+ Enable / Disable the use of a global gem cachedir.
134
+
135
+ "
136
+ return 1
137
+ fi
138
+ }
139
+
140
+ gemset_name()
141
+ {
142
+ gemset_dir | awk -F${rvm_gemset_separator:-"@"} '{print $2}'
143
+ return $?
144
+ }
145
+
146
+ gemset_dir()
147
+ {
148
+ echo "$rvm_ruby_gem_home"
149
+ return $?
150
+ }
151
+
152
+ gemset_create()
153
+ {
154
+ local gem_home gemset gemsets prefix
155
+
156
+ if [[ -n "$rvm_ruby_string" ]] ; then
157
+ __rvm_select
158
+ fi
159
+
160
+ prefix=$(echo $rvm_ruby_gem_home | sed 's/'${rvm_gemset_separator:-"@"}'.*$//')
161
+
162
+ gemsets=(${args[@]})
163
+
164
+ for gemset in "${gemsets[@]}" ; do
165
+
166
+ if [[ "$gemset" == *"${rvm_gemset_separator:-"@"}"* ]]; then
167
+ "$rvm_path/scripts/log" "error" \
168
+ "Can not create gemset '$gemset', it contains a \"${rvm_gemset_separator:-"@"}\"."
169
+ continue
170
+ fi
171
+
172
+ if [[ -z "$gemset" || "$gemset" = *"${rvm_gemset_separator:-"@"}" ]] ; then
173
+ "$rvm_path/scripts/log" "error" \
174
+ "Can not create gemset '$gemset', Missing name. "
175
+ continue
176
+ fi
177
+
178
+ gem_home="${prefix}${rvm_gemset_separator:-"@"}${gemset}"
179
+
180
+ if [[ ! -d "$gem_home" ]] ; then
181
+ mkdir -p "$gem_home"
182
+ fi
183
+
184
+ # When the globalcache is enabled, we need to ensure we setup the cache directory correctly.
185
+ if __rvm_using_gemset_globalcache ; then
186
+
187
+ if [[ -d "$gem_home/cache" && ! -L "$gem_home/cache" ]]; then
188
+
189
+ mv "$gem_home/cache"/*.gem "$rvm_gems_cache_path/" 2>/dev/null
190
+
191
+ rm -rf "$gem_home/cache"
192
+ fi
193
+
194
+ ln -nfs "$rvm_gems_cache_path" "$gem_home/cache"
195
+ fi
196
+
197
+ "$rvm_path/scripts/log" "info" "'$gemset' gemset created ($gem_home)."
198
+ done
199
+
200
+ return 0
201
+ }
202
+
203
+ gemset_list()
204
+ {
205
+ if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
206
+
207
+ "$rvm_path/scripts/log" "info" \
208
+ "\ngemsets for $rvm_ruby_string (found in ${rvm_gems_path:-"$rvm_path/gems"}/$rvm_ruby_string)"
209
+
210
+ if [[ -d "${rvm_gems_path:-"$rvm_path/gems"}" ]] ; then
211
+
212
+ if [[ -n "${rvm_ruby_string:-""}" ]] ; then
213
+
214
+ ls "${rvm_gems_path:-"$rvm_path/gems"}/" | awk -F"${rvm_gemset_separator:-"@"}" "/${rvm_ruby_string}${rvm_gemset_separator:-"@"}/{print \$2}" 2>/dev/null
215
+
216
+ else
217
+ "$rvm_path/scripts/log" "error" \
218
+ "\$rvm_ruby_string is not set!"
219
+ return 1
220
+ fi
221
+
222
+ else
223
+ "$rvm_path/scripts/log" "error" \
224
+ "${rvm_gems_path:-"$rvm_path/gems"} does not exist!"
225
+ return 1
226
+ fi
227
+ printf "\n"
228
+
229
+ return 0
230
+ }
231
+
232
+ gemset_delete()
233
+ {
234
+ gemsets=(${args[@]})
235
+
236
+ if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
237
+
238
+ if [[ -n "${gemsets[__array_start]}" ]] ; then
239
+ rvm_gemset_name="${gemsets[__array_start]}"
240
+ fi
241
+
242
+ if [[ -n "$rvm_gemset_name" ]] ; then
243
+
244
+ gemdir="${rvm_gems_path:-"$rvm_path/gems"}/$rvm_ruby_string${rvm_gemset_separator:-"@"}$rvm_gemset_name"
245
+
246
+ if [[ -d "$gemdir" && "$gemdir" != '/' && ${rvm_force_flag:-0} -gt 0 ]] ; then
247
+
248
+ rm -rf "$gemdir"
249
+
250
+ elif [[ -d "$gemdir" ]] ; then
251
+
252
+ "$rvm_path/scripts/log" "warn" "Are you SURE you wish to remove the entire gemset directory '$rvm_gemset_name' ($gemdir)?"
253
+
254
+ printf "(anything other than 'yes' will cancel) > "
255
+
256
+ read response
257
+
258
+ if [[ "yes" = "$response" ]] ; then
259
+
260
+ if [[ -L "$gemdir/cache" ]] ; then
261
+ rm -f "$gemdir/cache"
262
+ fi
263
+
264
+ rm -rf "$gemdir"
265
+
266
+ else
267
+ "$rvm_path/scripts/log" "info" \
268
+ "Not doing anything, phew... close call that one eh?"
269
+ fi
270
+
271
+ else
272
+ "$rvm_path/scripts/log" "info" \
273
+ "$gemdir already does not exist."
274
+ fi
275
+
276
+ else
277
+ "$rvm_path/scripts/log" "error" \
278
+ "A gemset name must be specified in order to delete a gems."
279
+ return 1
280
+ fi
281
+
282
+ return 0
283
+ }
284
+
285
+ gemset_empty()
286
+ {
287
+ local gemdir
288
+
289
+ if [[ -z "${rvm_ruby_gem_home:-""}" ]] ; then __rvm_select ; fi
290
+
291
+ gemdir="$rvm_ruby_gem_home"
292
+
293
+ if [[ -d "$gemdir" && "$gemdir" != '/' && ${rvm_force_flag:-0} -gt 0 ]] ; then
294
+
295
+ builtin cd "$gemdir" && rm -rf ./bin/* ./doc/* ./gems/* ./specifications/*
296
+
297
+ elif [[ -d "$gemdir" ]] ; then
298
+
299
+ "$rvm_path/scripts/log" "warn" \
300
+ "Are you SURE you wish to remove the installed gemset for gemset '$(basename "$gemdir")' ($gemdir)?"
301
+
302
+ echo -n "(anything other than 'yes' will cancel) > "
303
+
304
+ read response
305
+
306
+ if [[ "yes" = "$response" ]] ; then
307
+
308
+ builtin cd "$gemdir" && rm -rf ./bin/* ./doc/* ./gems/* ./specifications/*
309
+
310
+ else
311
+ "$rvm_path/scripts/log" "info" \
312
+ "Not doing anything, phew... close call that one eh?"
313
+ fi
314
+
315
+ else
316
+ "$rvm_path/scripts/log" "info" \
317
+ "$gemdir already does not exist."
318
+ fi
319
+
320
+ return 0
321
+ }
322
+
323
+ # Migrate gemsets from ruby X to ruby Y
324
+ gemset_copy()
325
+ {
326
+ local source_ruby destination_ruby source_path destination_path
327
+
328
+ source_ruby="${args[__array_start]:-""}"
329
+ args[$__array_start]="" ; args=(${args[@]})
330
+
331
+ destination_ruby="${args[__array_start]:-""}"
332
+ args[$__array_start]="" ; args=(${args[@]})
333
+
334
+ if [[ -z "$destination_ruby" || -z "$source_ruby" ]] ; then
335
+ "$rvm_path/scripts/log" "error" "Source and destination must be specified: 'rvm gemset copy X Y'"
336
+ return 1
337
+ fi
338
+
339
+ # TODO: Account for more possibilities:
340
+ # rvm gemset copy 1.9.2 @gemsetb # From 1.9.2 default to current ruby, 1.9.2 exists.
341
+ # rvm gemset copy @gemseta @gemsetb # Current ruby, gemseta exists.
342
+ # rvm gemset copy gemseta gemsetb # Currenty Ruby, gemseta exists.
343
+ # rvm gemset copy gemseta 1.8.7@gemsetb # Currenty Ruby@gemseta, current ruby@gemseta exists.
344
+
345
+ source_path="$(rvm_silence_logging=1 rvm "$source_ruby" gem env gemdir)"
346
+
347
+ destination_path="$(rvm_silence_logging=1 rvm "$destination_ruby" gem env gemdir)"
348
+
349
+ if [[ -z "$source_path" || ! -d "$source_path" ]]; then
350
+ "$rvm_path/scripts/log" "error" \
351
+ "Unable to expand '$source_ruby' or directory does not exist."
352
+ return 1
353
+ fi
354
+
355
+ if [[ -z "$destination_path" ]]; then
356
+ "$rvm_path/scripts/log" "error" \
357
+ "Unable to expand '$destination_ruby'"
358
+ return 1
359
+ fi
360
+
361
+ if [[ -d "$source_path" ]] ; then
362
+
363
+ "$rvm_path/scripts/log" "info" "Copying gemset from $source_ruby to $destination_ruby"
364
+
365
+ for dir in bin doc gems specifications cache ; do
366
+
367
+ mkdir -p "$destination_path/$dir"
368
+
369
+ if [[ -d "$source_path/$dir" ]] ; then
370
+ cp -Rf "$source_path/$dir" "$destination_path/"
371
+
372
+ elif [[ -L "$source_path/$dir" ]] ; then
373
+ cp "$source_path/$dir" "$destination_path/$dir"
374
+ fi
375
+
376
+ done
377
+
378
+ "$rvm_path/scripts/log" "info" \
379
+ "Making gemset for $destination_ruby pristine."
380
+
381
+ __rvm_run_with_env "gemset.pristine" "$destination_ruby" "rvm gemset pristine"
382
+
383
+ else
384
+ "$rvm_path/scripts/log" "error" \
385
+ "Gems directory does not exist for $source_path ($source_path)"
386
+ return 1
387
+ fi
388
+ }
389
+
390
+ gemset_unpack()
391
+ {
392
+ local gems name directory version versions
393
+
394
+ directory="${args[$__array_start]}"
395
+
396
+ if [[ -z "$directory" ]] ; then
397
+ directory="vendor/gems"
398
+ fi
399
+
400
+ if [[ -n "$rvm_ruby_gem_home" ]] ; then
401
+ export GEM_HOME="$rvm_ruby_gem_home"
402
+ export GEM_PATH="$rvm_ruby_gem_home/bin:$rvm_ruby_global_gems_path/bin"
403
+ export BUNDLE_PATH="$rvm_ruby_gem_home"
404
+ fi
405
+
406
+ "$rvm_path/scripts/log" "info" \
407
+ "Unpacking current environments gemset to ${directory}\n"
408
+
409
+ unset -f gem
410
+
411
+ gems=($(command gem list | sed 's#[\(|\)]##g' | sed -e 's#, #,#g' -e 's/ /;/g'))
412
+
413
+ for gem in ${gems[@]} ; do
414
+
415
+ name="${gem/;*/}"
416
+
417
+ versions="${gem/*;/}" ; versions=(${versions//,/ })
418
+
419
+ for version in "${versions[@]}" ; do
420
+
421
+ ( command gem unpack "$name" -v"$version" --target "$directory" )&
422
+
423
+ done
424
+
425
+ done ; wait
426
+
427
+ "$rvm_path/scripts/log" "info" \
428
+ "Unpacking into ${directory} complete\n"
429
+
430
+ return 0
431
+ }
432
+
433
+ gemset_export()
434
+ {
435
+ local gems name file_name version versions
436
+
437
+ rvm_file_name="${rvm_file_name:-${gems_args// }}"
438
+
439
+ if [[ -n "$rvm_ruby_gem_home" ]] ; then
440
+ export GEM_HOME="$rvm_ruby_gem_home"
441
+ export GEM_PATH="$rvm_ruby_gem_home/bin:$rvm_ruby_global_gems_path/bin"
442
+ export BUNDLE_PATH="$rvm_ruby_gem_home"
443
+ fi
444
+
445
+ if [[ -z "$rvm_file_name" ]] ; then
446
+
447
+ if [[ -n "$rvm_gemset_name" ]] ; then
448
+ rvm_file_name="$rvm_gemset_name.gems"
449
+
450
+ else
451
+ rvm_file_name="default.gems"
452
+ fi
453
+ fi
454
+
455
+ "$rvm_path/scripts/log" "info" \
456
+ "Exporting current environments gemset to $rvm_file_name"
457
+
458
+ touch "$rvm_file_name"
459
+
460
+ echo "# $rvm_file_name generated gem export file. Note that any env variable settings will be missing. Append these after using a ';' field separator" > "$rvm_file_name"
461
+
462
+ gems=($(gem list | sed 's#[\(|\)]##g' | sed 's#, #,#g' | tr ' ' ';'))
463
+
464
+ for gem in "${gems[@]}" ; do
465
+
466
+ name="${gem/;*/}"
467
+
468
+ if [[ ${rvm_latest_flag:-0} -eq 0 ]] ; then
469
+
470
+ versions="${gem/*;/}" ; versions="${versions//,/ }"
471
+
472
+ for version in $versions ; do
473
+ echo "$name -v$version" >> $rvm_file_name
474
+ done ; unset version versions
475
+
476
+ else
477
+ echo "$name" >> $rvm_file_name
478
+ fi
479
+ done
480
+
481
+ return 0
482
+ }
483
+
484
+ gemset_import()
485
+ {
486
+ unset -f gem
487
+
488
+ if [[ -n "${rvm_ruby_gem_home:-""}" ]] ; then
489
+ export GEM_HOME="$rvm_ruby_gem_home"
490
+ export GEM_PATH="$rvm_ruby_gem_home"
491
+ export BUNDLE_PATH="$rvm_ruby_gem_home"
492
+ else
493
+ rvm_ruby_gem_home=${GEM_HOME:-$(gem env gemdir)}
494
+ fi
495
+
496
+ #rvm_gemset_name="${gems_args//.gem*/}"
497
+ #rvm_gemset_name="${gems_args// /}"
498
+
499
+ rvm_file_name="${gems_args// /}"
500
+
501
+ # TODO: this could likely be better with find
502
+ if [[ -s "${rvm_file_name%.gems*}.gems" ]] ; then
503
+ rvm_file_name="${rvm_file_name%.gems*}.gems"
504
+
505
+ elif [[ -s "${rvm_gemset_name}.gems" ]] ; then
506
+ rvm_file_name="${rvm_gemset_name}.gems"
507
+
508
+ elif [[ -s "default.gems" ]] ; then
509
+ rvm_file_name="default.gems"
510
+
511
+ elif [[ -s "system.gems" ]] ; then
512
+ rvm_file_name="system.gems"
513
+
514
+ elif [[ -s ".gems" ]] ; then
515
+ rvm_file_name=".gems"
516
+
517
+ else
518
+ "$rvm_path/scripts/log" "error" "No *.gems file found."
519
+ return 1
520
+ fi
521
+
522
+ if [[ ! -d "$rvm_ruby_gem_home/specifications/" ]] ; then
523
+ mkdir -p "$rvm_ruby_gem_home/specifications/"
524
+ fi
525
+
526
+ if [[ ! -d "$rvm_gems_cache_path" ]] ; then
527
+ mkdir -p "$rvm_gems_cache_path" # Ensure the base cache dir is initialized.
528
+ fi
529
+
530
+ if [[ -s "$rvm_file_name" ]] ; then
531
+
532
+ echo "Importing $rvm_file_name file..."
533
+
534
+ rvm_ruby_gem_list=$(builtin cd "$rvm_ruby_gem_home/specifications/" ; find . -maxdepth 1 -mindepth 1 -type f -print 2> /dev/null | sed -e 's#.gems.*$##' 2> /dev/null)
535
+ rvm_ruby_gem_list="${rvm_ruby_gem_list//.\/}"
536
+
537
+ while read -r line
538
+ do # Keep this on 2nd line :(
539
+
540
+ if [[ -n "${line// /}" ]] ; then
541
+ gems_args="$line" ; gem_install
542
+ fi
543
+
544
+ done < <(awk '/^[^#]+/{print}' "${rvm_file_name}")
545
+
546
+ else
547
+ "$rvm_path/scripts/log" "error" "${rvm_file_name} does not exist to import from."
548
+ fi
549
+ }
550
+
551
+ __rvm_parse_gems_args()
552
+ {
553
+ gem="${gems_args/;*}" ; gem_prefix=""
554
+
555
+ if echo "$gems_args" | grep -q ';' ; then
556
+ gem_prefix="${gems_args/*;}"
557
+ fi
558
+
559
+ if "$rvm_path/scripts/match" "$gem" ".gem$" ; then
560
+ gem_name="$(basename "${gem/.gem/}" | awk -F'-' '{$NF=NULL;print}')"
561
+ gem_version="$(basename "${gem/.gem/}" | awk -F'-' '{print $NF}' )"
562
+ gem_postfix="$(basename "${gem/*.gem/}")"
563
+
564
+ else
565
+ gem_name="${gem/ */}"
566
+
567
+ if "$rvm_path/scripts/match" "$gem" "--version" ; then
568
+ gem_version="$(echo "$gem" | sed -e 's#.*--version[=]*[ ]*##' | awk '{print $1}')"
569
+ gem_postfix="$(echo "$gem" | sed -e "s#${gem_name/ /}##" -e "s#--version[=]*[ ]*${gem_version/ /}##")"
570
+
571
+ elif "$rvm_path/scripts/match" "$gem" "-v" ; then
572
+ gem_version="$(echo "$gem" | sed -e 's#.*-v[=]*[ ]*##' | awk '{print $1}')"
573
+ gem_postfix="$(echo "$gem" | sed -e "s#${gem_name/ /}##" -e "s#-v[=]*[ ]*${gem_version/ /}##")"
574
+
575
+ else
576
+ unset gem_version # no version
577
+ fi
578
+ fi
579
+
580
+ if [[ -s "$gem" ]] ; then
581
+ gem_file_name="$gem"
582
+
583
+ elif "$rvm_path/scripts/match" "$gem" ".gem$" ; then
584
+ gem_file_name="$gem"
585
+
586
+ elif [[ -z "${gem_version/ /}" ]] ; then
587
+ gem_file_name="${gem_name/ /}*.gem"
588
+
589
+ else # version
590
+ gem_file_name="${gem_name/ /}-${gem_version/ /}.gem"
591
+ fi
592
+ }
593
+
594
+ # Install a gem
595
+ gem_install()
596
+ {
597
+ local gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string gem_action
598
+
599
+ result=0
600
+
601
+ # First we parse the gem args to pick apart the pieces.
602
+ __rvm_parse_gems_args
603
+
604
+ # Now we determine if a .gem cache file is already installed
605
+ if [[ ${rvm_force_flag:-0} -eq 0 && -f "${rvm_ruby_gem_home}/specifications/$(basename "$gem_file_name")spec" ]] ; then
606
+ gem=""
607
+
608
+ "$rvm_path/scripts/log" "info" \
609
+ "$gem_name $gem_version exists, skipping (--force to re-install)"
610
+
611
+ else
612
+ if [[ -s "$gem" ]] ; then
613
+ cache_file="$gem"
614
+
615
+ elif [[ -s "$(__rvm_current_gemcache_dir)/${gem_file_name}" ]] ; then
616
+ cache_file="$(__rvm_current_gemcache_dir)/${gem_file_name}"
617
+
618
+ else
619
+ cache_file="${cache_file:-$( find "$(__rvm_current_gemcache_dir)/${gem_file_name}" -maxdepth 1 -mindepth 1 -type f -print 2> /dev/null | sort | head -n1)}"
620
+ cache_file="${cache_file//.\/}"
621
+ fi
622
+
623
+ if [[ ! -s "$cache_file" ]] ; then
624
+
625
+ if [[ -s "$gem_file_name" ]] ; then
626
+ gem="$gem_file_name"
627
+
628
+ elif [[ -z "${gem_version// /}" ]] ; then
629
+ gem="${gem_name// /}"
630
+
631
+ else
632
+ gem="${gem_name// /} -v $gem_version"
633
+ fi
634
+ else # cached
635
+
636
+ gem_file_name="$(basename "$cache_file")"
637
+
638
+ gem_string="$(echo "$gem_file_name" | sed 's#\.gem$##')"
639
+
640
+ if [[ ${rvm_force_flag:-0} -eq 0 && -s "${rvm_ruby_gem_home}/specifications/$(basename $gem_file_name)spec" ]] ; then
641
+ unset gem # already installed, not forcing reinstall.
642
+
643
+ "$rvm_path/scripts/log" "info" "$gem_name $gem_version exists, skipping (--force to re-install)"
644
+
645
+ else
646
+ if [[ -s "$(__rvm_current_gemcache_dir)/$(basename $gem_file_name)" ]] ; then
647
+
648
+ mkdir -p "${rvm_tmp_path:-"$rvm_path/tmp"}/$$/"
649
+
650
+ mv "$(__rvm_current_gemcache_dir)/$gem_file_name" "${rvm_tmp_path:-"$rvm_path/tmp"}/$$/$gem_file_name"
651
+
652
+ gem="${rvm_tmp_path:-"$rvm_path/tmp"}/$$/$gem_file_name -f -l"
653
+ else
654
+ gem="$cache_file"
655
+ fi
656
+ fi
657
+ fi
658
+ fi
659
+
660
+ # If $gem is still set, go forward with the install.
661
+ if [[ -n "$gem" ]] ; then
662
+
663
+ # TODO: Set vars if fourth field is non-empty (means that there are conditional statements to execute in the gem install line.
664
+ if [[ "rvm_make_flags_flag" -eq 1 ]] ; then __rvm_make_flags ; fi
665
+
666
+ if [[ -n "$rvm_ruby_gem_home" && "$rvm_ruby_gem_home" != "${rvm_gems_path:-"$rvm_path/gems"}" ]] ; then
667
+
668
+ command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' BUNDLE_PATH='${rvm_ruby_gem_home}' $gem_prefix gem install $gems_args $rvm_gem_options $gem_postfix $vars"
669
+
670
+ else
671
+
672
+ #--ignore-dependencies
673
+ command="$gem_prefix gem install --ignore-dependencies $gems_args $rvm_gem_options -q $gem $gem_postfix $vars"
674
+
675
+ fi
676
+
677
+ unset -f gem
678
+
679
+ __rvm_run "gem.install" "$command" "installing ${gem_name} ${gem_version}..."
680
+ result=$?
681
+
682
+ if [[ $result -eq 0 ]] ; then
683
+
684
+ "$rvm_path/scripts/log" "info" \
685
+ "$gem_name $gem_version installed ( output logged to: $rvm_path/log/$rvm_ruby_string/gem.install.log )"
686
+
687
+ else
688
+
689
+ "$rvm_path/scripts/log" "error" \
690
+ "$gem_name $gem_version failed to install ( output logged to: $rvm_path/log/$rvm_ruby_string/gem.install.error.log )"
691
+
692
+ fi
693
+ fi
694
+
695
+ return $result
696
+ }
697
+
698
+ # Output the user's current gem directory.
699
+ gemset_info()
700
+ {
701
+ if [[ ${rvm_user_flag:-0} -eq 1 ]] ; then
702
+ echo $(rvm system ; gem env | grep "\- $HOME" | awk '{print $NF}')
703
+
704
+ elif [[ ${rvm_system_flag:-0} -eq 1 ]] ; then
705
+ echo $(rvm system ; gem env $action system)
706
+
707
+ elif [[ -n "${rvm_ruby_string:-""}" ]] ; then
708
+ echo $(rvm "$rvm_ruby_string" ; gem env $action)
709
+
710
+ elif [[ -n "${GEM_HOME:-""}" ]] ; then
711
+ echo "$GEM_HOME"
712
+
713
+ else
714
+ gem env $action
715
+ fi
716
+
717
+ return $?
718
+ }
719
+
720
+ gemset_prune()
721
+ {
722
+ local temporary_cache_path live_cache_path gemset_name version versions cached_gem_name cached_file_path
723
+
724
+ temporary_cache_path="$GEM_HOME/temporary-cache"
725
+
726
+ live_cache_path="$GEM_HOME/cache"
727
+
728
+ mkdir -p "$temporary_cache_path"
729
+
730
+ "$rvm_path/scripts/log" "info" \
731
+ "Moving active gems into temporary cache..."
732
+
733
+ while read -r used_gem
734
+ do
735
+ gem_name="$(echo "$used_gem" | sed -e 's/ .*//')"
736
+
737
+ versions="$(echo "${used_gem//, / }" | sed -e 's/.* (//' -e 's/)//')"
738
+
739
+ for version in $versions; do
740
+
741
+ cached_gem_name="${gem_name}-${version}.gem"
742
+
743
+ cached_file_path="${live_cache_path}/${cached_gem_name}"
744
+
745
+ if [[ -f "$cached_file_path" ]]; then
746
+ mv "$cached_file_path" "${temporary_cache_path}/${cached_gem_name}"
747
+ fi
748
+ done
749
+ done < <(gem list --versions)
750
+
751
+ "$rvm_path/scripts/log" "info" \
752
+ "Removing live cache and restoring temporary cache..."
753
+
754
+ # Switch the cache back.
755
+ rm -rf "$live_cache_path"
756
+
757
+ mv "$temporary_cache_path" "$live_cache_path"
758
+
759
+ return 0
760
+ }
761
+
762
+ gemset_pristine()
763
+ {
764
+ if ( unset -f gem ; command -v gem > /dev/null ) ; then
765
+
766
+ gem pristine --all
767
+
768
+ return $?
769
+
770
+ else
771
+
772
+ "$rvm_path/scripts/log" "error" \
773
+ "'gem' command not found in PATH"
774
+
775
+ return 1
776
+ fi
777
+ }
778
+
779
+ # Loads the default gemsets for the current interpreter and gemset.
780
+ gemset_initial()
781
+ {
782
+ local gemsets gemset path paths
783
+
784
+ rvm_gemsets_path="${rvm_gemsets_path:-"$rvm_path/gemsets"}"
785
+
786
+ "$rvm_path/scripts/log" "info" \
787
+ "Importing initial gemsets for $(__rvm_environment_identifier)."
788
+
789
+ if [[ ! -d "$rvm_gemsets_path/${rvm_ruby_string//-//}" ]] ; then
790
+ mkdir -p "$rvm_gemsets_path/${rvm_ruby_string//-//}" 2>/dev/null
791
+ fi
792
+
793
+ paths=($(__rvm_ruby_string_paths_under "$rvm_gemsets_path"))
794
+
795
+ echo "paths: ${paths[@]}"
796
+
797
+ for path in "${paths[@]}" ; do
798
+
799
+ if [[ -n "$rvm_gemset_name" ]] ; then
800
+
801
+ if [[ -s "${rvm_gemset_name}.gems" ]] ; then
802
+
803
+ ( gems_args="${rvm_gemset_name}.gems" ; gemset_import )
804
+
805
+ fi
806
+
807
+ else
808
+
809
+ if [[ -s "${path}/default.gems" ]] ; then
810
+
811
+ ( gems_args="${path}/default.gems" ; gemset_import )
812
+
813
+ fi
814
+
815
+ if [[ -s "${path}/global.gems" ]] ; then
816
+
817
+ (
818
+ rvm_create_flag=1
819
+ rvm_ruby_gem_home="${rvm_ruby_gem_home//@*/}@global"
820
+ gems_args="${path}/global.gems"
821
+ gemset_import
822
+ )
823
+
824
+ fi
825
+
826
+ fi
827
+
828
+ done
829
+
830
+ "$rvm_path/scripts/log" "info" \
831
+ "Installation of gems for $(__rvm_environment_identifier) is complete."
832
+
833
+ return 0
834
+ }
835
+
836
+ unset GEM_PATH
837
+
838
+ if ! command -v gem > /dev/null ; then
839
+ "$rvm_path/scripts/log" "error" \
840
+ "'gem' was not found, cannot perform gem actions (Do you have an RVM ruby selected?)"
841
+ exit 1
842
+ fi
843
+
844
+ args=($*)
845
+ action="${args[$__array_start]}"
846
+ args[$__array_start]=""
847
+ args=(${args[@]})
848
+ gems_args="$(echo ${args[@]}) " # Strip trailing / leading / extra spacing.
849
+
850
+ export rvm_gemset_name="${args[1]:-""}" # For wherever used.
851
+ rvm_sticky_flag=1
852
+
853
+ if [[ -z "$rvm_ruby_string" ]] ; then
854
+
855
+ if echo "${GEM_HOME:-""}" | grep -q 'rvm' ; then
856
+
857
+ rvm_ruby_string="${GEM_HOME##*/}"
858
+
859
+ rvm_ruby_string="${rvm_ruby_string%%@*}"
860
+
861
+ fi
862
+
863
+ fi
864
+
865
+ case "$action" in
866
+
867
+ import|load)
868
+
869
+ if [[ -z "${rvm_ruby_strings:-""}" ]]; then
870
+
871
+ gemset_import
872
+
873
+ else
874
+ original_env="$(__rvm_environment_identifier)"
875
+
876
+ for rvm_ruby_string in $(echo "$rvm_ruby_strings" | tr "," " "); do
877
+
878
+ __rvm_become
879
+
880
+ gemset_import
881
+ done
882
+
883
+ __rvm_become "$original_env"
884
+
885
+ unset original_env
886
+ fi
887
+ ;;
888
+ export|dump)
889
+ gemset_export
890
+ ;;
891
+ create)
892
+ gemset_create
893
+ ;;
894
+ copy)
895
+ gemset_copy
896
+ ;;
897
+ empty)
898
+ gemset_empty
899
+ ;;
900
+ delete)
901
+ gemset_delete
902
+ ;;
903
+ name|string)
904
+ gemset_name
905
+ ;;
906
+ dir)
907
+ gemset_dir
908
+ ;;
909
+ list)
910
+ gemset_list
911
+ ;;
912
+ gemdir|gempath|gemhome|home|path|version)
913
+ gemset_info
914
+ ;;
915
+ install)
916
+ gem_install "$@"
917
+ ;;
918
+ pristine)
919
+ gemset_pristine "$@"
920
+ ;;
921
+ initial)
922
+ gemset_initial
923
+ ;;
924
+ prune)
925
+ gemset_prune
926
+ ;;
927
+ update)
928
+ gemset_update
929
+ ;;
930
+ unpack)
931
+ gemset_unpack
932
+ ;;
933
+ globalcache)
934
+ gemset_globalcache "$2"
935
+ ;;
936
+ clear)
937
+ "$rvm_path/scripts/log" "info" "gemset cleared."
938
+ exit 0
939
+ ;;
940
+ help)
941
+ usage
942
+ exit 0
943
+ ;;
944
+ *)
945
+ usage
946
+ exit 1
947
+ ;;
948
+ esac
949
+
950
+ exit $?