Commits

Michael Granger committed 26dd19c

Updated rvmrc; don't autoload the gemset

Comments (0)

Files changed (1)

 # This is an RVM Project .rvmrc file, used to automatically load the ruby
 # development environment upon cd'ing into the directory
 
-environment_id="2.0.0@strelka"
+# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
+# Only full ruby name is supported here, for short names use:
+#     echo "rvm use 2.0.0" > .rvmrc
+environment_id="ruby-2.0.0@strelka"
 
-if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
-	&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]; then
-	echo "Using ${environment_id}"
-	. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
+# Uncomment the following lines if you want to verify rvm version per project
+# rvmrc_rvm_version="1.25.12 (master)" # 1.10.1 seems like a safe start
+# eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | __rvm_awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
+#   echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
+#   return 1
+# }
 
-	if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]; then
-		. "${rvm_path:-$HOME/.rvm}/hooks/after_use"
-	fi
+# First we attempt to load the desired environment directly from the environment
+# file. This is very fast and efficient compared to running through the entire
+# CLI and selector. If you want feedback on which environment was used then
+# insert the word 'use' after --create as this triggers verbose mode.
+if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
+  && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
+then
+  \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
+  for __hook in "${rvm_path:-$HOME/.rvm}/hooks/after_use"*
+  do
+    if [[ -f "${__hook}" && -x "${__hook}" && -s "${__hook}" ]]
+    then \. "${__hook}" || true
+    fi
+  done
+  unset __hook
+  if (( ${rvm_use_flag:=1} >= 2 )) # display only when forced
+  then
+    if [[ $- == *i* ]] # check for interactive shells
+    then printf "%b" "Using: $(tput setaf 2 2>/dev/null)$GEM_HOME$(tput sgr0 2>/dev/null)
+" # show the user the ruby and gemset they are using in green
+    else printf "%b" "Using: $GEM_HOME
+" # don't use colors in non-interactive shells
+    fi
+  fi
 else
-	# If the environment file has not yet been created, use the RVM CLI to select.
-	if ! rvm --create use  "$environment_id"
-		then
-		echo "Failed to create RVM environment '${environment_id}'."
-		exit 1
-	fi
+  # If the environment file has not yet been created, use the RVM CLI to select.
+  rvm --create  "$environment_id" || {
+    echo "Failed to create RVM environment '${environment_id}'."
+    return 1
+  }
 fi
 
-filename=".rvm.gems"
-if [[ -s "$filename" ]]; then
-	rvm gemset import "$filename"
-fi
+# If you use bundler, this might be useful to you:
+# if [[ -s Gemfile ]] && {
+#   ! builtin command -v bundle >/dev/null ||
+#   builtin command -v bundle | GREP_OPTIONS="" \grep $rvm_path/bin/bundle >/dev/null
+# }
+# then
+#   printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
+#   gem install bundler
+# fi
+# if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
+# then
+#   bundle install | GREP_OPTIONS="" \grep -vE '^Using|Your bundle is complete'
+# fi
 
 echo "Хорошая собака, Стрелке! Очень хорошо."
 echo