rvm 1.0.9 → 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,7 +30,7 @@ fi
30
30
  # Setup default sandbox value. See scripts/rvm for origin.
31
31
  if [[ ${rvm_selfcontained:-0} -eq 0 ]]; then
32
32
 
33
- if [[ "root" = "$(whoami)" ]] || [[ -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
33
+ if [[ "root" = "$(whoami)" || -n "$rvm_prefix" && "$rvm_prefix" != "$HOME"/* ]]; then
34
34
 
35
35
  rvm_selfcontained=0
36
36
 
@@ -71,6 +71,6 @@ fi
71
71
 
72
72
  source "$rvm_path/scripts/rvm"
73
73
 
74
- unset rvm_interactive_flag
74
+ export rvm_interactive_flag=0
75
75
 
76
76
  rvm "$@"
@@ -33,6 +33,38 @@ __rvm_system_wide_permissions() {
33
33
  return 0
34
34
  }
35
35
 
36
+ __rvm_create_user_group() {
37
+ [[ -z "$1" ]] && return 1
38
+
39
+ if \grep -q "$1" /etc/group ; then
40
+ echo "Group '$1' exists, proceeding with installation."
41
+ else
42
+ echo "Creating the group '$1'"
43
+
44
+ case "$os_type" in
45
+ "FreeBSD") pw groupadd -q "$rvm_group_name";;
46
+ "Linux") groupadd -f "$rvm_group_name";;
47
+ esac
48
+ fi
49
+
50
+ return 0
51
+ }
52
+
53
+ __rvm_add_user_to_group() {
54
+ [[ -z "$1" || -z "$2" ]] && return 1
55
+
56
+ echo "Adding '$1' to the group '$2'"
57
+
58
+ case "$os_type" in
59
+ "FreeBSD") pw usermod "$1" -G "$2";;
60
+ "Linux") usermod -a -G "$2" "$1";;
61
+ esac
62
+
63
+ return 0
64
+ }
65
+
66
+ os_type="$(uname)"
67
+
36
68
  # Require root to install it.
37
69
  if [[ "$(whoami)" != "root" ]]; then
38
70
  echo "Please rerun this installer as root." >&2
@@ -43,8 +75,8 @@ elif [[ -z "$(command -v git)" ]] ; then
43
75
  echo "Please ensure git is installed and available in PATH to continue." >&2
44
76
  exit 1
45
77
 
46
- elif [[ "$(uname)" != "Linux" ]]; then
47
- echo "The rvm system wide installer is currently Linux only." >&2
78
+ elif [[ "$os_type" != "Linux" && "$os_type" != "FreeBSD" ]]; then
79
+ echo "The rvm system wide installer currently only supports Linux and FreeBSD." >&2
48
80
  exit 1
49
81
  fi
50
82
 
@@ -90,14 +122,9 @@ rvm_path="${rvm_path:-"/usr/local/rvm"}"
90
122
  export rvm_selfcontained=0
91
123
 
92
124
  rvm_group_name="${rvm_group_name:-"rvm"}"
93
- if \grep -q "${rvm_group_name}$" /etc/group ; then
94
- echo "Group '$rvm_group_name' exists, proceeding with installation."
95
- else
96
- echo "Creating the group '$rvm_group_name'"
97
- groupadd -f "$rvm_group_name"
98
- fi
99
- echo "Adding $(whoami) the '$rvm_group_name'"
100
- usermod -a -G "$rvm_group_name" "$(whoami)"
125
+
126
+ __rvm_create_user_group "$rvm_group_name"
127
+ __rvm_add_user_to_group "$(whoami)" "$rvm_group_name"
101
128
 
102
129
  echo "Creating the destination dir and making sure the permissions are correct"
103
130
  mkdir -p "$rvm_path"
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+
3
+ #
4
+ # r - Rails shortcut command.
5
+ #
6
+ r() {
7
+ local action args
8
+
9
+ action="$1" ; shift
10
+ args="$@"
11
+
12
+ case "$action" in
13
+ c) action=console ;;
14
+ db) action=dbconsole ;;
15
+ g) action=generate ;;
16
+ h|help) action="-h" ;;
17
+ esac
18
+
19
+ if [[ -s config.ru ]] ; then
20
+ ruby ./script/rails $args
21
+ else
22
+ if [[ -s ./script/$action ]] ; then
23
+ ruby ./script/$action $args
24
+ else
25
+ printf "ERROR: Missing script ./script/$action !!!"
26
+ fi
27
+ fi
28
+ }
data/install CHANGED
@@ -40,6 +40,15 @@ check_rubyopt_conditions() {
40
40
  fi
41
41
  }
42
42
 
43
+ # Regenerates a users wrappers as part of the update.
44
+ regenerate_wrappers() {
45
+ printf "\n"
46
+ if command -v __rvm_regenerate_wrappers >/dev/null; then
47
+ __rvm_regenerate_wrappers
48
+ fi
49
+ printf "\n"
50
+ }
51
+
43
52
  andand_return_instructions() {
44
53
  printf "
45
54
  This means that if you see something like:
@@ -493,6 +502,15 @@ for file in rvm rvmsudo rvm-shell rvm-auto-ruby ; do
493
502
 
494
503
  done
495
504
 
505
+ # Cleanup any .swp files that might have appeared.
506
+ files=($( find "$rvm_path/" -mindepth 1 -maxdepth 2 -iname '*.swp' -type f ))
507
+
508
+ for file in "${files[@]}" ; do
509
+
510
+ [[ -f "$file" ]] && rm -f "$file"
511
+
512
+ done
513
+
496
514
  printf "\n Copying manpages into place."
497
515
 
498
516
  files=($(builtin cd "$install_source_path/man" ; find . -maxdepth 1 -mindepth 1 -type f -print))
@@ -514,6 +532,8 @@ if [[ ${upgrade_flag:-0} -eq 1 ]] ; then
514
532
  upgrade_notes
515
533
 
516
534
  check_rubyopt_conditions
535
+
536
+ regenerate_wrappers
517
537
 
518
538
  printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
519
539
 
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 0
4
- :patch: 9
4
+ :patch: 10
@@ -12,7 +12,8 @@ module RVM
12
12
 
13
13
  # The default config has rvm_silence_logging so that log doesn't print anything to stdout.
14
14
  merge_config! :rvm_silence_logging => 1,
15
- :rvm_promptless => 1
15
+ :rvm_promptless => 1,
16
+ :rvm_ruby_api => 1
16
17
 
17
18
  attr_reader :environment_name, :shell_wrapper
18
19
 
@@ -45,7 +46,7 @@ module RVM
45
46
 
46
47
  # Automatically load rvm config from the multiple sources.
47
48
  def source_rvm_environment
48
- rvm_path = config_value_for(:rvm_path, File.expand_path("~/.rvm"), false)
49
+ rvm_path = config_value_for(:rvm_path, self.class.default_rvm_path, false)
49
50
  actual_config = defined_config.merge('rvm_path' => rvm_path)
50
51
  config = []
51
52
  actual_config.each_pair do |k, v|
@@ -3,12 +3,12 @@ module RVM
3
3
 
4
4
  # Returns the contents of the env file.
5
5
  def env_contents
6
- rvm(:env).stdout
6
+ rvm(:env, environment_name).stdout
7
7
  end
8
8
 
9
9
  # Returns the path to the env file
10
10
  def env_path
11
- rvm(:env, :path => true).stdout.strip
11
+ rvm(:env, environment_name, :path => true).stdout.strip
12
12
  end
13
13
 
14
14
  # Returns a ruby-like wrapper for the env functions
@@ -3,6 +3,11 @@ module RVM
3
3
 
4
4
  PREFIX_OPTIONS = [:trace, :json, :yaml]
5
5
 
6
+ def self.default_rvm_path
7
+ value = `bash '#{File.expand_path('../shell/calculate_rvm_path.sh', File.dirname(__FILE__))}'`.strip
8
+ $?.success? && !value.empty? ? File.expand_path(value) : nil
9
+ end
10
+
6
11
  # Returns the environment identifier for the current environment,
7
12
  # as determined from the GEM_HOME.
8
13
  def self.current_environment_id
@@ -19,7 +24,7 @@ module RVM
19
24
 
20
25
  # Returns the ruby string that represents the current environment.
21
26
  def self.current_ruby_string
22
- identifier_to_ruby_string current_environment_id
27
+ identifier_to_ruby_string(current_environment_id)
23
28
  end
24
29
 
25
30
  # Converts a ruby identifier (string + gemset) to just the ruby string.
@@ -55,10 +60,11 @@ module RVM
55
60
  rearrange_options!(args, options)
56
61
  args += hash_to_options(options)
57
62
  args.map! { |a| a.to_s }
63
+
58
64
  if silent
59
- run_silently 'rvm', *args
65
+ run_silently('rvm', *args)
60
66
  else
61
- run 'rvm', *args
67
+ run('rvm', *args)
62
68
  end
63
69
  end
64
70
 
@@ -89,7 +95,7 @@ module RVM
89
95
  if result && result[:rvm_ruby_string]
90
96
  result[:rvm_ruby_string]
91
97
  else
92
- self.class.identifier_to_ruby_string expanded_name
98
+ self.class.identifier_to_ruby_string(expanded_name)
93
99
  end
94
100
  end
95
101
 
@@ -116,7 +122,7 @@ module RVM
116
122
 
117
123
  # Normalizes an array, removing blank lines.
118
124
  def normalize_array(value)
119
- value.split("\n").map { |l| l.strip }.reject { |l| l.empty? }
125
+ value.split("\n").map { |line| line.strip }.reject { |line| line.empty? }
120
126
  end
121
127
 
122
128
  # Extract options from a hash.
@@ -146,7 +152,7 @@ module RVM
146
152
  def normalize_option_value(value)
147
153
  case value
148
154
  when Array
149
- value.map { |v| normalize_option_value(v) }.join(",")
155
+ value.map { |option| normalize_option_value(option) }.join(",")
150
156
  else
151
157
  value.to_s
152
158
  end
@@ -0,0 +1,26 @@
1
+ #!/bin/bash
2
+
3
+ # Calculates a default rvm path
4
+
5
+ # Check first.
6
+ if [[ -n "$rvm_path" ]]; then
7
+ echo "$rvm_path"
8
+ exit
9
+ fi
10
+
11
+ # Load extra files.
12
+
13
+ [[ -s ~/.rvmrc ]] && source ~/.rvmrc >/dev/null 2>&1
14
+ [[ -s /etc/.rvmrc ]] && source /etc/rvmrc >/dev/null 2>&1
15
+
16
+ if [[ -n "$rvm_path" ]]; then
17
+ echo "$rvm_path"
18
+ elif [[ -d ~/.rvm ]]; then
19
+ echo "~/.rvm"
20
+ elif [[ -d /usr/local/rvm ]]; then
21
+ echo "/usr/local/rvm"
22
+ else
23
+ exit 1
24
+ fi
25
+
26
+ exit 0
@@ -5,6 +5,6 @@ __rvm_show_command_epilog() {
5
5
  echo "---"
6
6
  echo " exit_status: \"$last_command_result\""
7
7
  echo " environment:"
8
- env | sed "s#'#\\'#" | sed -e 's#"#\\"#' -e "s#\\([^=]*\\)=\\(.*\\)# '\1': \"\2\"#"
8
+ env | sed "s#'#\\'#g" | sed -e 's#"#\\"#g' -e "s#\\([^=]*\\)=\\(.*\\)# '\1': \"\2\"#"
9
9
  echo "----------------RVM-RESULTS-END----------------"
10
10
  }
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rvm}
8
- s.version = "1.0.9"
8
+ s.version = "1.0.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wayne E. Seguin"]
12
- s.date = %q{2010-09-15}
12
+ s.date = %q{2010-09-18}
13
13
  s.default_executable = %q{rvm-install}
14
14
  s.description = %q{Manages Ruby interpreter environments and switching between them.}
15
15
  s.email = %q{wayneeseguin@gmail.com}
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  "config/md5",
33
33
  "contrib/gemset_snapshot",
34
34
  "contrib/install-system-wide",
35
+ "contrib/r",
35
36
  "examples/rvmrc",
36
37
  "gemsets/default.gems",
37
38
  "gemsets/global.gems",
@@ -92,6 +93,7 @@ Gem::Specification.new do |s|
92
93
  "lib/rvm/install_command_dumper.rb",
93
94
  "lib/rvm/shell.rb",
94
95
  "lib/rvm/shell/abstract_wrapper.rb",
96
+ "lib/rvm/shell/calculate_rvm_path.sh",
95
97
  "lib/rvm/shell/result.rb",
96
98
  "lib/rvm/shell/shell_wrapper.sh",
97
99
  "lib/rvm/shell/single_shot_wrapper.rb",
data/scripts/cd CHANGED
@@ -13,6 +13,9 @@ if [[ ${rvm_project_rvmrc:-1} -ne 0 ]] ; then
13
13
  builtin cd "$@"
14
14
  local result=$?
15
15
  __rvm_project_rvmrc
16
+
17
+ rvm_hook="after_cd" ; source "$rvm_path/scripts/hook"
18
+
16
19
  return $result
17
20
  }
18
21
  fi
@@ -21,6 +24,9 @@ if [[ ${rvm_project_rvmrc:-1} -ne 0 ]] ; then
21
24
  builtin cd "$@"
22
25
  local result=$?
23
26
  __rvm_project_rvmrc
27
+
28
+ rvm_hook="after_cd" ; source "$rvm_path/scripts/hook"
29
+
24
30
  return $result
25
31
  }
26
32
  fi
@@ -396,12 +396,14 @@ __rvm_parse_args() {
396
396
  if [[ $# -gt 0 ]] ; then next_token="$1" ; shift ; else next_token="" ; fi
397
397
  ;;
398
398
 
399
+ --debug)
400
+ export rvm_debug_flag=1
401
+ set -o verbose
402
+ ;;
403
+
399
404
  --trace|--debug)
400
405
  local option
401
406
 
402
- export rvm_debug_flag=1
403
-
404
- set -o verbose
405
407
  set -o noclobber
406
408
  set -o nounset
407
409
 
@@ -414,10 +416,10 @@ __rvm_parse_args() {
414
416
 
415
417
  export rvm_trace_flag=1
416
418
 
417
- #set -o xtrace
419
+ set -o xtrace
418
420
 
419
421
  if [[ -z "${ZSH_VERSION:-""}" ]] ; then
420
- export PS4='-[${BASH_SOURCE}] : ${LINENO} : ${FUNCNAME[0]:+${FUNCNAME[0]}() > }'
422
+ export PS4='+[${BASH_SOURCE}] : ${LINENO} : ${FUNCNAME[0]:+${FUNCNAME[0]}() $ }'
421
423
  fi
422
424
  fi
423
425
  ;;
@@ -667,7 +669,7 @@ rvm() {
667
669
  ;;
668
670
 
669
671
  ruby|gem|rake|exec)
670
- old_rvm_ruby_string=$rvm_ruby_string
672
+ old_rvm_ruby_string=${rvm_ruby_string:-""}
671
673
  unset rvm_ruby_string
672
674
  export rvm_ruby_strings
673
675
 
@@ -757,8 +759,14 @@ rvm() {
757
759
  __rvm_teardown
758
760
 
759
761
  if [[ ${rvm_trace_flag:-0} -eq 1 ]] ; then
760
- set +x
761
762
  rvm_trace_flag=0
763
+ set +o verbose
764
+ set +o noclobber
765
+ set +o nounset
766
+
767
+ if [[ -z "${ZSH_VERSION:-""}" ]] ; then
768
+ set +o errtrace
769
+ fi
762
770
  fi
763
771
 
764
772
  return ${result:-0}
@@ -215,8 +215,14 @@ gemset_list() {
215
215
 
216
216
  gemset_delete() {
217
217
 
218
+ gemsets=(${args[@]})
219
+
218
220
  if [[ ${rvm_ruby_selected_flag:-0} -eq 0 ]] ; then __rvm_select ; fi
219
221
 
222
+ if [[ -n "${gemsets[__array_start]}" ]] ; then
223
+ rvm_gemset_name="${gemsets[__array_start]}"
224
+ fi
225
+
220
226
  if [[ -n "$rvm_gemset_name" ]] ; then
221
227
 
222
228
  gemdir="${rvm_gems_path:-"$rvm_path/gems"}/$rvm_ruby_string${rvm_gemset_separator:-"@"}$rvm_gemset_name"
@@ -810,8 +816,9 @@ if ! command -v gem > /dev/null ; then
810
816
  fi
811
817
 
812
818
  args=($*)
813
- action="${args[0]}"
814
- args=($(echo ${args[@]:1}))
819
+ action="${args[$__array_start]}"
820
+ args[$__array_start]=""
821
+ args=(${args[@]})
815
822
  gems_args="$(echo ${args[@]}) " # Strip trailing / leading / extra spacing.
816
823
 
817
824
  export rvm_gemset_name="${args[1]:-""}" # For wherever used.
@@ -1,22 +1,37 @@
1
1
  #!/usr/bin/env bash
2
+
2
3
  rvm_base_except="selector"
4
+
3
5
  source "$rvm_path/scripts/base"
4
6
 
5
7
  rvm_help_path="${rvm_help_path:-"$rvm_path/help"}"
6
8
 
7
9
  args=($*)
8
- command="${args[0]}"
9
- action="${args[1]}"
10
- args="$(echo ${args[@]:2}) " # Strip trailing / leading / extra spacing.
11
10
 
12
- if [[ ! -z "$command" ]] && [[ -s "${rvm_help_path}/${command}" ]] ; then
13
- if [[ ! -z "$action" ]] && [[ -s "${rvm_help_path}/${command}/${action}" ]] ; then
11
+ command="${args[$__array_start]}"
12
+ args[$__array_start]=""
13
+ args=(${args[@]})
14
+
15
+ action="${args[$array_start]}"
16
+ args[$__array_start]=""
17
+ args=(${args[@]})
18
+
19
+ if [[ -n "$command" && -s "${rvm_help_path}/${command}" ]] ; then
20
+
21
+ if [[ -n "$action" && -s "${rvm_help_path}/${command}/${action}" ]] ; then
22
+
14
23
  less "${rvm_help_path}/${command}/${action}"
24
+
15
25
  else
26
+
16
27
  less "${rvm_help_path}/${command}"
28
+
17
29
  fi
30
+
18
31
  else
32
+
19
33
  less "${rvm_path:-$HOME/.rvm}/README"
34
+
20
35
  "$rvm_path/scripts/log" "info" \
21
36
  "Commands available with 'rvm help':\n\n $(builtin cd "${rvm_help_path}" ; find . -maxdepth 1 -mindepth 1 -type f -print | \tr "\n" ' ' | sed -e 's#./##g')"
22
37
  fi