Unverified Commit e06bf905 authored by Koichiro Iwao's avatar Koichiro Iwao
Browse files

Add new option to exclude EoL'ed versions

when showing available versions
parent 73b926b7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@
#        rbenv install --version
#
#   -l/--list          List all available versions
#   -L/--list-exclude-eol
#                      List available versions excluding EoL'ed
#   -f/--force         Install even if the version appears to be installed already
#   -s/--skip-existing Skip if the version appears to be installed already
#
@@ -38,6 +40,7 @@ shopt -u nullglob
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
  echo --list
  echo --list-exclude-eol
  echo --force
  echo --skip-existing
  echo --keep
@@ -80,6 +83,9 @@ for option in "${OPTIONS[@]}"; do
    ruby-build --definitions
    exit
    ;;
  "L" | "list-exclude-eol" )
    ruby-build --definitions-exclude-eol
    ;;
  "f" | "force" )
    FORCE=true
    ;;
+13 −0
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@
#   -4/--ipv4        Resolve names to IPv4 addresses only
#   -6/--ipv6        Resolve names to IPv6 addresses only
#   --definitions    List all built-in definitions
#   --definitions-exclude-eol
#                    List all builtt-in definitions excluding EoL'ed
#   --version        Show version of ruby-build
#

@@ -1202,6 +1204,13 @@ list_definitions() {
  } | sort_versions | uniq
}

list_definitions_exclude_eol() {
  { for DEFINITION_DIR in "${RUBY_BUILD_DEFINITIONS[@]}"; do
    [ -d "$DEFINITION_DIR" ] && (cd "$DEFINITION_DIR"; grep -L -e warn_eol -e warn_unsupported *)
    done
  } | sort_versions | uniq
}

sort_versions() {
  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 | awk '{print $2}'
@@ -1232,6 +1241,10 @@ for option in "${OPTIONS[@]}"; do
    list_definitions
    exit 0
    ;;
  "definitions-exclude-eol")
    list_definitions_exclude_eol
    exit 0
    ;;
  "k" | "keep" )
    KEEP_BUILD_PATH=true
    ;;