gemrage 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,301 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source "$rvm_path/scripts/base"
4
+
5
+ __rvm_attempt_single_exec()
6
+ {
7
+ # Return if we have multiple rubies. or we're not running exec.
8
+ if [[ "$action" = "exec" && ${#rvm_ruby_strings[@]} -lt 2 ]]; then
9
+
10
+ __rvm_become "$rvm_ruby_strings"
11
+
12
+ eval "exec ${args[@]}"
13
+ fi
14
+
15
+ return 1
16
+ }
17
+
18
+ # Perform an action using one of a selected ruby's specified binaries.
19
+ __rvm_ruby_do()
20
+ {
21
+ # Return on invalid rubies.
22
+ __rvm_become "$current_set_ruby" || return 1
23
+
24
+ if [[ "$action" = "exec" ]]; then
25
+ # Exec is a special case.
26
+ rvm_command="${args[@]}"
27
+
28
+ else
29
+
30
+ binary="$(echo $action | sed 's#do$##')"
31
+
32
+ if [[ -x "$rvm_ruby_home/bin/$binary" ]] ; then
33
+
34
+ binary="$rvm_ruby_home/bin/$binary"
35
+
36
+
37
+ elif [[ -x "$rvm_ruby_global_gems_path/bin/$binary" ]] ; then
38
+
39
+ binary="$rvm_ruby_global_gems_path/bin/$binary"
40
+
41
+ elif [[ -x "$rvm_ruby_gem_home/bin/$binary" ]] ; then
42
+
43
+ binary="$rvm_ruby_gem_home/bin/$binary"
44
+
45
+ elif [[ "system" = "$rvm_ruby_string" ]] && [[ -x "$(command -v $binary)" ]] ; then
46
+
47
+ binary="$(basename $(command -v $binary) 2>/dev/null)"
48
+
49
+ else
50
+
51
+ "$rvm_path/scripts/log" "warn" \
52
+ "'$binary not found for $rvm_ruby_string' either does not exist or is not executable? :("
53
+
54
+ __rvm_unset_ruby_variables
55
+
56
+ return 1
57
+
58
+ fi
59
+
60
+ if [[ ! -z "$rvm_ruby_mode" ]] ; then
61
+
62
+ rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_mode}"
63
+
64
+ rvm_ruby_mode="--$(echo "$rvm_ruby_mode" | sed 's/^m//')"
65
+
66
+ fi
67
+
68
+ load_path="$(dirname $(command -v $binary) 2>/dev/null):$rvm_ruby_load_path"
69
+
70
+ # TODO: the else case below should be run if $args =~ /\.rb$/
71
+ if [[ "ruby" = "$(basename $binary)" && "$rvm_benchmark_flag" -ne 1 ]] ; then
72
+
73
+ if "$rvm_path/scripts/match" "${args[@]}" "\.rb$" ; then
74
+
75
+ if [[ -z "$prefix" ]] ; then prefix="-S" ; fi
76
+
77
+ if ! "$rvm_path/scripts/match" "${args[@]}" "$prefix" ; then
78
+
79
+ args=($prefix ${args[@]})
80
+
81
+ fi
82
+ fi
83
+
84
+ rvm_command="$binary $rvm_ruby_mode $rvm_ruby_require -I$load_path ${args[@]}"
85
+
86
+ else
87
+
88
+ rvm_command="$binary $rvm_ruby_mode ${args[@]}"
89
+
90
+ fi
91
+
92
+ fi
93
+
94
+ if [[ -n "$rvm_json_flag" || -n "$rvm_yaml_flag" || -n "$rvm_summary_flag" ]] ; then
95
+
96
+ if [[ ! -d "./log/$rvm_ruby_string/" ]] ; then
97
+ mkdir -p "./log/$rvm_ruby_string/"
98
+ fi
99
+
100
+ touch ./log/$rvm_ruby_string/$action.log ./log/$rvm_ruby_string/$action.error.log
101
+
102
+ eval "$rvm_command" \
103
+ >> ./log/$rvm_ruby_string/$action.log \
104
+ 2>> ./log/$rvm_ruby_string/$action.error.log
105
+
106
+ else
107
+ if [[ ${rvm_verbose_flag:-0} -gt 0 ]] ; then
108
+
109
+ current_env="$(__rvm_environment_identifier)"
110
+
111
+ if [[ "$current_env" != "$current_set_ruby" ]]; then
112
+
113
+ current_env="$current_set_ruby ($current_env)"
114
+
115
+ fi
116
+
117
+ "$rvm_path/scripts/log" "info" \
118
+ "$current_env: $(ruby -v $rvm_ruby_mode | \tr "\n" ' ')\n"
119
+
120
+ unset current_env
121
+ fi
122
+ eval "$rvm_command"
123
+ fi
124
+ result=$?
125
+
126
+ string=$(basename $rvm_ruby_gem_home)
127
+
128
+ if [[ $result -eq 0 ]]; then
129
+
130
+ eval "successes=(${successes[*]} $string)"
131
+
132
+ else
133
+
134
+ eval "errors=(${errors[*]} $string)"
135
+
136
+ fi
137
+
138
+ eval "rubies=(${rubies[*]} $string)"
139
+
140
+ eval "statuses=(${statuses[*]} $result)"
141
+
142
+ unset string
143
+
144
+ __rvm_unset_ruby_variables
145
+ }
146
+
147
+ # Output the summary in a human readable format.
148
+ __rvm_summary()
149
+ {
150
+ export successes errors statuses
151
+
152
+ summary="\nSummary:\n\n"
153
+
154
+ if [[ ${#successes[*]} -gt 0 ]] ; then
155
+
156
+ summary="$summary \033[0;32m${#successes[*]} successful: $(echo "${successes[*]}" | sed 's# #, #g')\033[0m\n"
157
+
158
+ fi
159
+
160
+ if [[ ${#errors[*]} -gt 0 ]] ; then
161
+
162
+ summary="$summary \033[0;31m${#errors[*]} errors: $(echo "${errors[*]}" | sed 's# #, #g')\033[0m\n"
163
+
164
+ fi
165
+
166
+ total=${#rubies[*]}
167
+
168
+ if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
169
+
170
+ printf "$summary" | tee -a log/summary.log
171
+
172
+ return ${#errors[*]}
173
+
174
+ }
175
+
176
+ # Output the summary in a yaml format.
177
+ __rvm_yaml()
178
+ {
179
+ export successes errors statuses
180
+
181
+ yaml="totals:\n rubies: ${#rubies[*]}\n successes: ${#successes[*]}\n errors: ${#errors[*]}\nsuccesses:"
182
+
183
+ for var in ${successes[*]} ; do yaml="$yaml\n - $var" ; done
184
+
185
+ yaml="$yaml\nerrors:"
186
+
187
+ for var in ${errors[*]} ; do yaml="$yaml\n - $var" ; done
188
+
189
+ yaml="$yaml\nrubies:"
190
+
191
+ total=${#rubies[*]}
192
+
193
+ if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
194
+
195
+ for (( index = $array_start ; index < $total + $array_start ; index++ )) ; do
196
+
197
+ if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
198
+
199
+ "$rvm_path/scripts/log" "debug" "${rubies[$index]}: ${statuses[$index]}"
200
+
201
+ fi
202
+
203
+ yaml="$yaml\n \"${rubies[$index]}\": ${statuses[$index]}"
204
+
205
+ done ; unset index array_start
206
+
207
+ \mkdir -p log
208
+
209
+ printf "$yaml" | tee -a log/summary.yaml
210
+
211
+ return ${#errors[*]}
212
+ }
213
+
214
+ # Output the summary in a json format.
215
+ __rvm_json()
216
+ {
217
+ local index array_start
218
+
219
+ json="{
220
+ \"totals\": { \"rubies\": ${#rubies[*]}, \"successes\": ${#successes[*]}, \"errors\": ${#errors[*]} },
221
+ \"successful\": [$(echo \"${successes[*]}\" | sed 's# #", "#g' | sed 's#\"\"##')],
222
+ \"errors\": [$(echo \"${errors[*]}\" | sed 's# #", "#g' | sed 's#\"\"##')],
223
+ \"rubies\": { "
224
+
225
+ total=${#rubies[*]}
226
+ if [[ -n "${ZSH_VERSION:-""}" ]] ; then array_start=1 ; else array_start=0 ; fi
227
+
228
+ for (( index = $array_start ; index < $total + $array_start ; index++ )) ; do
229
+
230
+ if [[ ${rvm_debug_flag:-0} -gt 0 ]] ; then
231
+
232
+ "$rvm_path/scripts/log" "debug" "${rubies[$index]}: ${statuses[$index]}"
233
+
234
+ fi
235
+
236
+ json="$json\n {\"${rubies[$index]}\": ${statuses[$index]}}"
237
+
238
+ if (( $index + 1 < $total + $array_start )) ; then json="$json, " ; fi
239
+
240
+ done
241
+
242
+ json="$json\n }\n}"
243
+
244
+ if [[ ! -d log ]] ; then
245
+ mkdir -p log
246
+ fi
247
+
248
+ printf "$json" | tee -a log/summary.json
249
+
250
+ return ${#errors[*]}
251
+ }
252
+
253
+ # Loop over a set or all rvm installed rubies to perform some action.
254
+ # Record the results and report based on CLI selections.
255
+
256
+ rubies=() ; successes=() ; errors=() ; statuses=()
257
+
258
+ args=($*)
259
+ action="${args[$__array_start]}"
260
+ args[$__array_start]=""
261
+ args=(${args[@]})
262
+
263
+ if [[ -z "$action" ]] ; then
264
+
265
+ "$rvm_path/scripts/log" "error" \
266
+ "Action must be specified."
267
+
268
+ exit 1
269
+
270
+ fi
271
+
272
+ if [[ "$action" == "ruby" ]] && echo "$args" | \grep -q "^'--[^[:space:]]*'$" ; then
273
+
274
+ "$rvm_path/scripts/log" "warn" \
275
+ "You called rvm ruby with the arguments $args which look like use options."
276
+
277
+ "$rvm_path/scripts/log" "warn" \
278
+ "Please note that 'rvm ruby' invokes set operations instead."
279
+
280
+ fi
281
+
282
+ rvm_ruby_strings=$(__rvm_expand_ruby_string "$rvm_ruby_strings")
283
+
284
+ rvm_ruby_strings=(${rvm_ruby_strings//default}) # No quotes here is intentional.
285
+
286
+ # Check for a single ruby && exec if present.
287
+ __rvm_attempt_single_exec
288
+
289
+ for current_set_ruby in ${rvm_ruby_strings[@]} ; do
290
+ __rvm_ruby_do
291
+ done
292
+
293
+ if [[ ! -z "$rvm_summary_flag" ]] ; then __rvm_summary ; fi
294
+
295
+ if [[ ! -z "$rvm_yaml_flag" ]] ; then __rvm_yaml ; fi
296
+
297
+ if [[ ! -z "$rvm_json_flag" ]] ; then __rvm_json ; fi
298
+
299
+ rvm_hook="after_do" ; source "$rvm_path/scripts/hook"
300
+
301
+ exit ${#errors[*]}
@@ -0,0 +1,262 @@
1
+ #!/usr/bin/env bash
2
+
3
+ unset GREP_COLOR
4
+ unset GREP_OPTIONS
5
+
6
+ source "$rvm_path/scripts/base"
7
+
8
+ __error_on_result()
9
+ {
10
+ if [[ "$1" -gt 0 ]]; then
11
+ "$rvm_path/scripts/log" "fail" "$2 - Aborting now."
12
+ return 0
13
+ else
14
+ return 1
15
+ fi
16
+ }
17
+
18
+ snapshot_save()
19
+ {
20
+ if [[ -z "$1" ]]; then
21
+
22
+ printf "
23
+
24
+ Usage:
25
+
26
+ rvm snapshot save name
27
+
28
+ Description:
29
+
30
+ Saves a snapshot describing the rvm installation
31
+ to <name>.tar.gz in the current working directory.\
32
+
33
+ " >&2
34
+
35
+ return 1
36
+
37
+ fi
38
+
39
+ # Create the temporary directory.
40
+ local snapshot_temp_path="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-snapshot"
41
+
42
+ rm -rf "$snapshot_temp_path"
43
+
44
+ mkdir -p "$snapshot_temp_path"
45
+
46
+ "$rvm_path/scripts/log" "info" "Backing up a list of aliases"
47
+ cp "$rvm_path/config/alias" "$snapshot_temp_path/"
48
+
49
+ "$rvm_path/scripts/log" "info" "Backing up your user preferences"
50
+ cp "$rvm_path/config/user" "$snapshot_temp_path/"
51
+
52
+ "$rvm_path/scripts/log" "info" "Backing up your installed packages"
53
+ sed -e 's/-//' -e 's/^lib//' < "$rvm_path/config/packages" | awk -F= '{print $1}' | sort | uniq > "$snapshot_temp_path/packages"
54
+
55
+ "$rvm_path/scripts/log" "info" "Backing up all of your gemsets"
56
+ mkdir -p "$snapshot_temp_path/gems"
57
+
58
+ (
59
+ builtin cd "$snapshot_temp_path/gems"
60
+
61
+ for snapshot_gemset in $("$rvm_path/scripts/list" gemsets strings) ; do
62
+
63
+ __rvm_become "$snapshot_gemset" ; result="$?"
64
+
65
+ __error_on_result "$result" "Error becoming ruby $snapshot_gemset" && return "$result"
66
+
67
+ "$rvm_path/scripts/gemsets" export "${snapshot_gemset}.gems" >/dev/null ; result="$?"
68
+
69
+ __error_on_result "$result" "Error exporting gemset contents for $snapshot_gemset" && return "$result"
70
+
71
+ mkdir -p "./$snapshot_gemset/"
72
+
73
+ [[ -d "$GEM_HOME/cache/" ]] && \cp -R "$GEM_HOME/cache/" "./$snapshot_gemset/"
74
+
75
+ done
76
+ )
77
+
78
+ "$rvm_path/scripts/log" "info" "Backing up all of your installed rubies"
79
+
80
+ echo '#!/usr/bin/env bash -e' > "$snapshot_temp_path/install-rubies.sh"
81
+
82
+ echo "source \"\$rvm_path/scripts/rvm\" || true" >> "$snapshot_temp_path/install-rubies.sh"
83
+
84
+ local snapshot_ruby_name_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-rubies"
85
+
86
+ local snapshot_alias_name_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-aliases"
87
+
88
+ local snapshot_installable_file="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-installable"
89
+
90
+ "$rvm_path/scripts/alias" list | awk -F ' => ' '{print $1}' | sort | uniq 2>/dev/null > "$snapshot_alias_name_file"
91
+
92
+ "$rvm_path/scripts/list" strings | \tr ' ' '\n' | sort | uniq > "$snapshot_ruby_name_file"
93
+
94
+ comm -2 -3 "$snapshot_ruby_name_file" "$snapshot_alias_name_file" > "$snapshot_installable_file"
95
+
96
+ rm -rf "$snapshot_ruby_name_file" "$snapshot_alias_name_file"
97
+
98
+ local snapshot_primary_ruby="$(\grep '^\(ree\|ruby-1.8.7\)' < "$snapshot_installable_file" | \grep -v '-head$' | sort -r | head -n1)"
99
+
100
+ local snapshot_ruby_order="$snapshot_primary_ruby $(\grep -v "$snapshot_primary_ruby" < "$snapshot_installable_file")"
101
+
102
+ for snapshot_ruby_name in $snapshot_ruby_order ; do
103
+
104
+ snapshot_install_command="$(__rvm_recorded_install_command "$snapshot_ruby_name")"
105
+
106
+ if [[ -n "$snapshot_install_command" ]]; then
107
+
108
+ echo "rvm install $snapshot_install_command" | sed "s#$rvm_path#'\\\"\$rvm_path\\\"'#" >> "$snapshot_temp_path/install-rubies.sh"
109
+
110
+ else
111
+
112
+ __rvm_become "$snapshot_ruby_name"
113
+
114
+ ruby "$rvm_path/lib/rvm/install_command_dumper.rb" >> "$snapshot_temp_path/install-rubies.sh"
115
+
116
+ fi
117
+
118
+ unset snapshot_install_command
119
+
120
+ done; unset snapshot_ruby_name snapshot_primary_ruby
121
+
122
+ rm -rf "$snapshot_installable_file"
123
+
124
+ "$rvm_path/scripts/log" "info" "Compressing snapshotting"
125
+
126
+ local destination_path="$PWD"
127
+ (
128
+ builtin cd "$snapshot_temp_path"
129
+ rm -rf "$destination_path/$1.tar.gz"
130
+ tar czf "$destination_path/$1.tar.gz" .
131
+ result="$?"
132
+ __error_on_result "$result" "Error creating archive $destination_path/$1.tar.gz" && return "$result"
133
+ )
134
+
135
+ "$rvm_path/scripts/log" "info" "Cleaning up"
136
+
137
+ rm -rf "$snapshot_temp_path"
138
+
139
+ "$rvm_path/scripts/log" "info" "Snapshot complete"
140
+ }
141
+
142
+ snapshot_load()
143
+ {
144
+ local package_info
145
+
146
+ if [[ -z "$1" ]]; then
147
+ echo "Usage: rvm snapshot load name" >&2
148
+ echo "Loads a snapshot from <name>.tar.gz in the current directory." >&2
149
+ return 1
150
+ fi
151
+
152
+ local snapshot_archive="$PWD/$(echo "$1" | sed 's/.tar.gz$//').tar.gz"
153
+
154
+ if ! [[ -s "$snapshot_archive" ]]; then
155
+ echo "The provides snapshot '$(basename "$snapshot_archive")' doesn't exist." >&2
156
+ return 1
157
+ fi
158
+
159
+ local snapshot_temp_path="${rvm_tmp_path:-"$rvm_path/tmp"}/$$-snapshot"
160
+
161
+ \rm -rf "$snapshot_temp_path"
162
+ \mkdir -p "$snapshot_temp_path"
163
+
164
+ "$rvm_path/scripts/log" "info" "Extracting snapshot"
165
+ (
166
+ builtin cd "$snapshot_temp_path"
167
+ tar xzf "$snapshot_archive"
168
+ result="$?"
169
+ __error_on_result "$result" "Error extracting the archive '$snapshot_archive'" && return "$result"
170
+ )
171
+
172
+ "$rvm_path/scripts/log" "info" "Restoring user settings"
173
+ \cp -f "$snapshot_temp_path/user" "$rvm_path/config/user"
174
+
175
+ "$rvm_path/scripts/log" "info" "Installing rvm-managed packages"
176
+ for snapshot_package in $(cat "$snapshot_temp_path/packages"); do
177
+ "$rvm_path/scripts/package" install "$snapshot_package"
178
+ result="$?"
179
+ __error_on_result "$result" "Error installing package '$snapshot_package'" && return "$result"
180
+ done; unset snapshot_package
181
+
182
+ "$rvm_path/scripts/log" "info" "Installing rubies"
183
+
184
+ chmod +x "$snapshot_temp_path/install-rubies.sh"
185
+
186
+ "$snapshot_temp_path/install-rubies.sh"
187
+ result="$?"
188
+
189
+ __error_on_result "$result" "Error importing rubies." && return "$result"
190
+
191
+ export rvm_create_flag=1
192
+
193
+ "$rvm_path/scripts/log" "info" "Setting up gemsets"
194
+
195
+ (
196
+ builtin cd "$snapshot_temp_path/gems"
197
+
198
+ gems=($(find . -mindepth 0 -maxdepth 0 -type f -iname '*.gems' | sed 's/.gems$//'))
199
+
200
+ for snapshot_gemset in "${gems[@]//.\/}" ; do
201
+
202
+ __rvm_become "$snapshot_gemset"
203
+ result="$?"
204
+
205
+ __error_on_result "$result" \
206
+ "Error becoming '$snapshot_gemset'" && return "$result"
207
+
208
+ mkdir -p "$GEM_HOME/cache/"
209
+
210
+ cp -Rf "$snapshot_gemset/" "$GEM_HOME/cache/"
211
+ result="$?"
212
+
213
+ __error_on_result "$result" \
214
+ "Error copying across cache for $snapshot_gemset" && return "$result"
215
+
216
+ "$rvm_path/scripts/gemsets" import "$snapshot_gemset" >/dev/null 2>&1
217
+ result="$?"
218
+
219
+ __error_on_result "$result" \
220
+ "Error importing gemset for $snapshot_gemset" && return "$result"
221
+ done
222
+ )
223
+
224
+ "$rvm_path/scripts/log" "info" "Restoring aliases"
225
+
226
+ while read -r package_info; do
227
+ # Note: this assumes an '=' int the input...
228
+ local alias_name="${package_info/=*}"
229
+ local alias_ruby="${package_info/*=}"
230
+
231
+ "$rvm_path/scripts/alias" create "$alias_name" "$alias_ruby"
232
+ if [[ "$alias_name" = "default" ]]; then
233
+ (source "$rvm_path/scripts/rvm" && rvm use "$alias_ruby" --default) >/dev/null 2>&1
234
+ result="$?"
235
+ __error_on_result "$result" "Error setting default to $alias_ruby" && return "$result"
236
+ fi
237
+ done < "$snapshot_temp_path/alias"
238
+
239
+ "$rvm_path/scripts/log" "info" "Cleaning up load process"
240
+ \rm -rf "$snapshot_temp_path"
241
+
242
+ "$rvm_path/scripts/log" "info" "Loaded snapshot from $(basename "$snapshot_archive")"
243
+ }
244
+
245
+ snapshot_usage()
246
+ {
247
+ echo "Usage: rvm snapshot {save,load} file" >&2
248
+ return 1
249
+ }
250
+
251
+
252
+ args=($*)
253
+ action="${args[0]}"
254
+ args="$(echo ${args[@]:1}) " # Strip trailing / leading / extra spacing.
255
+
256
+ case "$action" in
257
+ save) snapshot_save "$args" ;;
258
+ load) snapshot_load "$args" ;;
259
+ *) snapshot_usage ;;
260
+ esac
261
+
262
+ exit $?
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source "$rvm_path/scripts/base"
4
+
5
+ usage()
6
+ {
7
+ echo "Usage: rvm tools {identifier,path-identifier,strings}" 1>&2
8
+ exit 1
9
+ }
10
+
11
+ # Return the identifier that's current in use.
12
+ tools_identifier()
13
+ {
14
+ __rvm_environment_identifier
15
+ }
16
+
17
+ tools_path_identifier()
18
+ {
19
+ if [[ -z "$1" || ! -d "$1" ]]; then
20
+ echo "Usage: rvm tools path-identifier 'path-to-check'"
21
+ return 1
22
+ fi
23
+
24
+ source "$rvm_path/scripts/rvm"
25
+ builtin cd "$1"
26
+ rvm_promptless=1 __rvm_project_rvmrc
27
+ rvmrc_result="$?"
28
+ __rvm_environment_identifier
29
+ exit $rvmrc_result
30
+ }
31
+
32
+ tools_strings()
33
+ {
34
+ for ruby_name in "$@"; do
35
+ __rvm_unset_ruby_variables
36
+ rvm_ruby_string="$ruby_name"
37
+ if { __rvm_ruby_string && __rvm_select; } >/dev/null 2>&1; then
38
+ basename "$rvm_ruby_gem_home"
39
+ else
40
+ echo ""
41
+ fi
42
+ done
43
+ }
44
+
45
+ args=($*)
46
+ action="${args[0]}"
47
+ args="$(echo ${args[@]:1})" # Strip trailing / leading / extra spacing.
48
+
49
+ [[ -z "$action" ]] && usage
50
+
51
+ case "$action" in
52
+ identifier) tools_identifier ;;
53
+ path-identifier) tools_path_identifier "$args" ;;
54
+ strings) tools_strings "$args" ;;
55
+ *) usage ;;
56
+ esac
57
+
58
+ exit $?