@@ -11,32 +11,64 @@ if [ -z "$RBENV_ROOT" ]; then
1111 RBENV_ROOT=" ${HOME} /.rbenv"
1212fi
1313
14- DEFINITION=" $1 "
15- case " $DEFINITION " in
16- " " | -* )
17- { echo " usage: rbenv install VERSION"
18- echo " rbenv install /path/to/definition"
14+ # Load shared library functions
15+ eval " $( ruby-build --lib) " && lib
16+
17+ usage () {
18+ { echo " usage: rbenv install [-k|--keep] [-v|--verbose] VERSION"
19+ echo " rbenv install [-k|--keep] [-v|--verbose] /path/to/definition"
20+ echo " rbenv install -l|--list"
1921 echo
20- echo " Available versions:"
21- ruby-build --definitions | sed ' s/^/ /'
22+ echo " -l/--list List all available versions"
23+ echo " -k/--keep Keep source tree in \$ RBENV_BUILD_ROOT after installation"
24+ echo " (defaults to ${RBENV_ROOT} /sources)"
25+ echo " -v/--verbose Verbose mode: print compilation status to stdout"
2226 echo
2327 } >&2
24- exit 1
25- ;;
26- " -k" | " --keep" )
27- [ -z " ${RBENV_BUILD_ROOT} " ] && RBENV_BUILD_ROOT=" ${RBENV_ROOT} /sources"
28- RUBY_BUILD_OPTIONS=" ${RUBY_BUILD_OPTIONS} -k"
29- ;;
30- esac
28+
29+ [ -z " $1 " ] || exit " $1 "
30+ }
31+
32+ unset KEEP
33+ unset VERBOSE
34+
35+ parse_options " $@ "
36+ for option in " ${OPTIONS[@]} " ; do
37+ case " $option " in
38+ " h" | " help" )
39+ usage 0
40+ ;;
41+ " l" | " list" )
42+ echo " Available versions:"
43+ ruby-build --definitions | sed ' s/^/ /'
44+ exit
45+ ;;
46+ " k" | " keep" )
47+ [ -n " ${RBENV_BUILD_ROOT} " ] || RBENV_BUILD_ROOT=" ${RBENV_ROOT} /sources"
48+ ;;
49+ " v" | " verbose" )
50+ VERBOSE=" -v"
51+ ;;
52+ " version" )
53+ exec ruby-build --version
54+ ;;
55+ * )
56+ usage 1
57+ ;;
58+ esac
59+ done
60+
61+ DEFINITION=" ${ARGUMENTS[0]} "
62+ [ -n " $DEFINITION " ] || usage 1
3163
3264VERSION_NAME=" ${DEFINITION##*/ } "
3365PREFIX=" ${RBENV_ROOT} /versions/${VERSION_NAME} "
3466
3567# If RBENV_BUILD_ROOT is set, then always pass keep options to ruby-build
3668if [ -n " ${RBENV_BUILD_ROOT} " ]; then
3769 export RUBY_BUILD_BUILD_PATH=" ${RBENV_BUILD_ROOT} /${VERSION_NAME} "
38- RUBY_BUILD_OPTIONS= " ${RUBY_BUILD_OPTIONS} -k"
70+ KEEP= " -k"
3971fi
4072
41- ruby-build " $DEFINITION " " $PREFIX " " $RUBY_BUILD_OPTIONS "
73+ ruby-build $KEEP $VERBOSE " $DEFINITION " " $PREFIX "
4274rbenv rehash
0 commit comments