1
0

renv.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env bash
  2. renv() {
  3. case "$1" in
  4. status | s)
  5. [[ -n "$GEM_HOME" ]] && echo "GEM_HOME='$GEM_HOME'"
  6. [[ -n "$GEM_PATH" ]] && echo "GEM_PATH='$GEM_PATH'"
  7. echo "PATH='$PATH'" && return
  8. ;;
  9. reset | r)
  10. if [[ -z "$RENV_ORIG_PATH" ]]; then
  11. echo ">>>> renv not set. Try: \`renv'"
  12. return 3
  13. fi
  14. if [[ -n "$RENV_ORIG_GEM_HOME" ]]; then
  15. GEM_HOME=$RENV_ORIG_GEM_HOME
  16. else
  17. unset GEM_HOME
  18. fi
  19. if [[ -n "$RENV_ORIG_GEM_PATH" ]]; then
  20. GEM_PATH=$RENV_ORIG_GEM_PATH
  21. else
  22. unset GEM_PATH
  23. fi
  24. if [[ -n "$RENV_ORIG_PATH" ]]; then
  25. PATH=$RENV_ORIG_PATH
  26. fi
  27. unset RENV_ORIG_GEM_HOME RENV_ORIG_GEM_PATH RENV_ORIG_PATH
  28. echo "---> renv is reset, GEM_HOME is ${GEM_HOME:-"<unset>"}"
  29. ;;
  30. "")
  31. if [[ -n "$RENV_ORIG_PATH" ]]; then
  32. echo ">>>> renv already set, GEM_HOME is $GEM_HOME. Try: \`renv reset'"
  33. return 9
  34. fi
  35. eval "$(
  36. ruby -rrubygems - <<-'EOF'
  37. puts "local ruby_engine=#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'}"
  38. puts "local ruby_version=#{RUBY_VERSION}"
  39. puts "local gem_path='#{Gem.path.join(':')}'"
  40. EOF
  41. )"
  42. local gem_dir="$PWD/.gem/$ruby_engine/$ruby_version"
  43. export RENV_ORIG_PATH="$PATH"
  44. export RENV_ORIG_GEM_HOME="$GEM_HOME"
  45. export RENV_ORIG_GEM_PATH="$GEM_PATH"
  46. export PATH="$gem_dir/bin:$PATH"
  47. export GEM_HOME="$gem_dir"
  48. export GEM_PATH="$gem_dir:$gem_path"
  49. echo "---> renv is set, GEM_HOME is $GEM_HOME"
  50. ;;
  51. help | h | usage | --help | -h | *)
  52. echo "usage: renv [reset|status]"
  53. return
  54. ;;
  55. esac
  56. }