rvm 1.1.4 → 1.1.5

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