Loading bin/rbenv-install +6 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ # rbenv install -l|--list # rbenv install --version # # -l/--list List available versions except EoL'ed versions # -l/--list List latest stable versions for each Ruby # -L/--list-all List all available versions # -f/--force Install even if the version appears to be installed already # -s/--skip-existing Skip if the version appears to be installed already Loading Loading @@ -80,6 +80,11 @@ for option in "${OPTIONS[@]}"; do ;; "l" | "list" ) ruby-build --list { echo echo "Only latest stable releases for each Ruby implementation are shown." echo "Try 'rbenv install --list-all' to show all available versions." } 1>&2 exit ;; "L" | "list-all" ) Loading bin/ruby-build +15 −5 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ # -4/--ipv4 Resolve names to IPv4 addresses only # -6/--ipv6 Resolve names to IPv6 addresses only # -d/--definitions List all built-in definitions # -l/--list List built-in definitions except EoL'ed versions # -l/--list List latest stable releases for each Ruby # --version Show version of ruby-build # Loading Loading @@ -1196,6 +1196,7 @@ usage() { [ -z "$1" ] || exit "$1" } # list all versions list_definitions() { { for DEFINITION_DIR in "${RUBY_BUILD_DEFINITIONS[@]}"; do [ -d "$DEFINITION_DIR" ] && ls "$DEFINITION_DIR" Loading @@ -1203,8 +1204,8 @@ list_definitions() { } | sort_versions | uniq } # listing exclude RC, preview, dev versions and EoL'ed versions list_definitions_exclude_eol() { # list only latest stable versions excluding RC, preview, dev and EoL'ed list_latest_definitions() { { for DEFINITION_DIR in "${RUBY_BUILD_DEFINITIONS[@]}"; do [ -d "$DEFINITION_DIR" ] && \ ( Loading @@ -1213,7 +1214,16 @@ list_definitions_exclude_eol() { grep -v -e '-rc[0-9]*$' -e '-preview[0-9]*$' -e '-dev$' ) done } | sort_versions | uniq } | filter_previous_versions | sort_versions | uniq } filter_previous_versions() { # sort in this function looks redundunt but it is necessary # rbx-3.99 appears latest unless the sort sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z.\1/; s/$/.z/; G; s/\n/ /' | \ LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | \ sed 's/[+.]/ /; s/[0-9].*z //; s/^\([0-9].[0-9]\)/mri\1 \1/' | \ awk '{ latest[$1] =$2 } END{ for(key in latest) { print latest[key] } }' } sort_versions() { Loading Loading @@ -1247,7 +1257,7 @@ for option in "${OPTIONS[@]}"; do exit 0 ;; "l" | "list") list_definitions_exclude_eol list_latest_definitions exit 0 ;; "k" | "keep" ) Loading test/definitions.bats +65 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,71 @@ truffleruby-19.3.0" assert_success "$expected" } @test "filtering previous Ruby versions" { export RUBY_BUILD_ROOT="$TMP" mkdir -p "${RUBY_BUILD_ROOT}/share/ruby-build" all_versions=" 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.0 jruby-1.5.6 jruby-9.2.7.0 jruby-9.2.8.0 jruby-9.2.9.0 maglev-1.0.0 mruby-1.4.1 mruby-2.0.0 mruby-2.0.1 mruby-2.1.0 rbx-3.104 rbx-3.105 rbx-3.106 rbx-3.107 truffleruby-19.2.0.1 truffleruby-19.3.0 truffleruby-19.3.0.2 truffleruby-19.3.1" expected="2.4.9 2.5.7 2.6.5 2.7.0 jruby-9.2.9.0 maglev-1.0.0 mruby-2.1.0 rbx-3.107 truffleruby-19.3.1" for ver in $all_versions; do touch "${RUBY_BUILD_ROOT}/share/ruby-build/$ver" done run ruby-build --list assert_success "$expected" } @test "removing duplicate Ruby versions" { export RUBY_BUILD_ROOT="$TMP" export RUBY_BUILD_DEFINITIONS="${RUBY_BUILD_ROOT}/share/ruby-build" Loading Loading
bin/rbenv-install +6 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ # rbenv install -l|--list # rbenv install --version # # -l/--list List available versions except EoL'ed versions # -l/--list List latest stable versions for each Ruby # -L/--list-all List all available versions # -f/--force Install even if the version appears to be installed already # -s/--skip-existing Skip if the version appears to be installed already Loading Loading @@ -80,6 +80,11 @@ for option in "${OPTIONS[@]}"; do ;; "l" | "list" ) ruby-build --list { echo echo "Only latest stable releases for each Ruby implementation are shown." echo "Try 'rbenv install --list-all' to show all available versions." } 1>&2 exit ;; "L" | "list-all" ) Loading
bin/ruby-build +15 −5 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ # -4/--ipv4 Resolve names to IPv4 addresses only # -6/--ipv6 Resolve names to IPv6 addresses only # -d/--definitions List all built-in definitions # -l/--list List built-in definitions except EoL'ed versions # -l/--list List latest stable releases for each Ruby # --version Show version of ruby-build # Loading Loading @@ -1196,6 +1196,7 @@ usage() { [ -z "$1" ] || exit "$1" } # list all versions list_definitions() { { for DEFINITION_DIR in "${RUBY_BUILD_DEFINITIONS[@]}"; do [ -d "$DEFINITION_DIR" ] && ls "$DEFINITION_DIR" Loading @@ -1203,8 +1204,8 @@ list_definitions() { } | sort_versions | uniq } # listing exclude RC, preview, dev versions and EoL'ed versions list_definitions_exclude_eol() { # list only latest stable versions excluding RC, preview, dev and EoL'ed list_latest_definitions() { { for DEFINITION_DIR in "${RUBY_BUILD_DEFINITIONS[@]}"; do [ -d "$DEFINITION_DIR" ] && \ ( Loading @@ -1213,7 +1214,16 @@ list_definitions_exclude_eol() { grep -v -e '-rc[0-9]*$' -e '-preview[0-9]*$' -e '-dev$' ) done } | sort_versions | uniq } | filter_previous_versions | sort_versions | uniq } filter_previous_versions() { # sort in this function looks redundunt but it is necessary # rbx-3.99 appears latest unless the sort sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z.\1/; s/$/.z/; G; s/\n/ /' | \ LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | \ sed 's/[+.]/ /; s/[0-9].*z //; s/^\([0-9].[0-9]\)/mri\1 \1/' | \ awk '{ latest[$1] =$2 } END{ for(key in latest) { print latest[key] } }' } sort_versions() { Loading Loading @@ -1247,7 +1257,7 @@ for option in "${OPTIONS[@]}"; do exit 0 ;; "l" | "list") list_definitions_exclude_eol list_latest_definitions exit 0 ;; "k" | "keep" ) Loading
test/definitions.bats +65 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,71 @@ truffleruby-19.3.0" assert_success "$expected" } @test "filtering previous Ruby versions" { export RUBY_BUILD_ROOT="$TMP" mkdir -p "${RUBY_BUILD_ROOT}/share/ruby-build" all_versions=" 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.0 jruby-1.5.6 jruby-9.2.7.0 jruby-9.2.8.0 jruby-9.2.9.0 maglev-1.0.0 mruby-1.4.1 mruby-2.0.0 mruby-2.0.1 mruby-2.1.0 rbx-3.104 rbx-3.105 rbx-3.106 rbx-3.107 truffleruby-19.2.0.1 truffleruby-19.3.0 truffleruby-19.3.0.2 truffleruby-19.3.1" expected="2.4.9 2.5.7 2.6.5 2.7.0 jruby-9.2.9.0 maglev-1.0.0 mruby-2.1.0 rbx-3.107 truffleruby-19.3.1" for ver in $all_versions; do touch "${RUBY_BUILD_ROOT}/share/ruby-build/$ver" done run ruby-build --list assert_success "$expected" } @test "removing duplicate Ruby versions" { export RUBY_BUILD_ROOT="$TMP" export RUBY_BUILD_DEFINITIONS="${RUBY_BUILD_ROOT}/share/ruby-build" Loading