#!/usr/bin/env bash __rvm_set_versions_conf() { \typeset gemset identifier if [[ -s .versions.conf ]] then \command \mv .versions.conf .versions.conf.$(__rvm_date +%m.%d.%Y-%H:%M:%S) rvm_warn ".version.conf is not empty, moving aside to preserve." fi identifier=$(__rvm_env_string) gemset=${identifier#*@} identifier=${identifier%@*} printf "%b" "ruby=$identifier " >> .versions.conf if [[ -n "$gemset" && "$gemset" != "$identifier" ]] then printf "%b" "ruby-gemset=$gemset " >> .versions.conf else printf "%b" "#ruby-gemset=my-projectit " >> .versions.conf fi printf "%b" "#ruby-gem-install=bundler rake #ruby-bundle-install=true " >> .versions.conf } __rvm_set_ruby_version() { if [[ -s .ruby-version ]] then \command \mv .ruby-version .ruby-version.$(__rvm_date +%m.%d.%Y-%H:%M:%S) rvm_warn ".ruby-version is not empty, moving aside to preserve." fi \typeset __version="$(__rvm_env_string)" case "${__version}" in (*@*) if [[ -s .ruby-gemset ]] then \command \mv .ruby-gemset .ruby-gemset.$(__rvm_date +%m.%d.%Y-%H:%M:%S) rvm_warn ".ruby-gemset is not empty, moving aside to preserve." fi echo "${__version##*@}" > .ruby-gemset ;; (*) if [[ -s .ruby-gemset ]] then \command \mv .ruby-gemset .ruby-gemset.$(__rvm_date +%m.%d.%Y-%H:%M:%S) rvm_warn ".ruby-gemset not needed, moving aside to preserve." fi ;; esac echo "${__version%@*}" > .ruby-version } __rvm_set_rvmrc() { \typeset flags identifier short_identifier gem_file true ${rvm_verbose_flag:=0} if [[ "$HOME" != "$PWD" && "${rvm_prefix:-}" != "$PWD" ]] then if (( rvm_verbose_flag )) then flags="use " fi if [[ -s .rvmrc ]] then \command \mv .rvmrc .rvmrc.$(__rvm_date +%m.%d.%Y-%H:%M:%S) rvm_warn ".rvmrc is not empty, moving aside to preserve." fi identifier=$(__rvm_env_string) short_identifier="${identifier#ruby-}" short_identifier="${short_identifier%%-*}" printf "%b" "#!/usr/bin/env bash # This is an RVM Project .rvmrc file, used to automatically load the ruby # development environment upon cd'ing into the directory # First we specify our desired [@], the @gemset name is optional, # Only full ruby name is supported here, for short names use: # echo \"rvm use ${short_identifier}\" > .rvmrc environment_id=\"$identifier\" # Uncomment the following lines if you want to verify rvm version per project # rvmrc_rvm_version=\"${rvm_version}\" # 1.10.1 seems like a safe start # eval \"\$(echo \${rvm_version}.\${rvmrc_rvm_version} | 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.\" # exit 1 # } " >> .rvmrc if __rvm_string_match "$identifier" "jruby*" then printf "%b" " # Uncomment following line if you want options to be set only for given project. # PROJECT_JRUBY_OPTS=( --1.9 ) # The variable PROJECT_JRUBY_OPTS requires the following to be run in shell: # chmod +x \${rvm_path}/hooks/after_use_jruby_opts " >> .rvmrc fi printf "%b" " # 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 " >> .rvmrc if [[ " $flags " == *" use "* ]] then printf "%b" " if (( \${rvm_use_flag:=1} >= 1 )) # display automatically" >> .rvmrc else printf "%b" " if (( \${rvm_use_flag:=1} >= 2 )) # display only when forced" >> .rvmrc fi printf "%b" " then if [[ \$- == *i* ]] # check for interactive shells then printf \"%b\" \"Using: \$(tput setaf 2 2>/dev/null)\$GEM_HOME\$(tput sgr0 2>/dev/null)\\\\n\" # show the user the ruby and gemset they are using in green else printf \"%b\" \"Using: \$GEM_HOME\\\\n\" # don't use colors in non-interactive shells fi fi " >> .rvmrc printf "%b" "else # If the environment file has not yet been created, use the RVM CLI to select. rvm --create $flags \"\$environment_id\" || { echo \"Failed to create RVM environment '\${environment_id}'.\" return 1 } fi " >> .rvmrc for gem_file in *.gems do case "$gem_file" in (\*.gems) continue ;; esac printf "%b" " # If you use an RVM gemset file to install a list of gems (*.gems), you can have # it be automatically loaded. Uncomment the following and adjust the filename if # necessary. # # filename=\".gems\" # if [[ -s \"\$filename\" ]] # then # rvm gemset import \"\$filename\" | GREP_OPTIONS=\"\" \\\\command \\grep -v already | GREP_OPTIONS=\"\" \command \grep -v listed | GREP_OPTIONS=\"\" \command \grep -v complete | \command \sed '/^$/d' # fi " >> .rvmrc done if [[ -s Gemfile ]] then printf "%b" " # 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=\"\" \\\\command \\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=\"\" \\\\command \\grep -vE '^Using|Your bundle is complete' # fi " >> .rvmrc fi else rvm_error ".rvmrc cannot be set in your home directory.\ \nThe home .rvmrc is for global rvm settings only." fi }