Sha256: a928c869a4842f8a80a29549abaaa27a36f849057b5d1809738a1227a98f71f3

Contents?: true

Size: 1.87 KB

Versions: 14

Compression:

Stored size: 1.87 KB

Contents

# bash completion for Ruby Version Manager (RVM)

__rvm_comp() 
{
  local cur="${COMP_WORDS[COMP_CWORD]}"
  COMPREPLY=($(compgen -W "$1" -- "$cur"))
  return 0
}

__rvm_subcommand()
{
  local word subcommand c=1

  while [ $c -lt $COMP_CWORD ]; do
    word="${COMP_WORDS[c]}"
    for subcommand in $1; do
      if [ "$subcommand" = "$word" ]; then
        echo "$subcommand"
        return
      fi
    done
    c=$((++c))
  done
}

__rvm_rubies ()
{
  echo "$(rvm list strings) default system"
}

__rvm_gemsets ()
{
  echo "$(rvm gemset list | grep -v gemset 2>/dev/null)"
}

_rvm_commands ()
{
  local cur=${COMP_WORDS[COMP_CWORD]}

  COMMANDS='\
        version use reload impload update reset info debug\
        install uninstall remove\
        ruby gem rake tests specs monitor gemset\
        gemdir srcdir fetch list package notes'

  RVM_OPTS='\
    -v --version\
    -h --help\
    -l --level\
    --tag\
    --rev\
    --prefix\
    --bin\
    --source\
    --archives\
    -S --script\
    -G --gems\
    -C --configure\
    --reconfigure\
    --make\
    --make-install\
    --nice\
    -m --gem-set\
    --rm-gem-set'

  case "${cur}" in
  -*)       _rvm_opts ;;
  *)        __rvm_comp "$COMMANDS $(__rvm_rubies)" ;;
  esac
}

_rvm_opts ()
{
  local rvm_opts='\
	-v --version\
	-h --help'

  __rvm_comp "$rvm_opts"
}

_rvm_use ()
{
  local command="${COMP_WORDS[COMP_CWORD-2]}"

  case "${command}" in
  gemset) __rvm_comp "$(__rvm_gemsets)" ;;
  *)      __rvm_comp "$(__rvm_rubies)" ;;
  esac
}

_rvm_gemset ()
{
  local subcommands="use create"
  local subcommand="$(__rvm_subcommand "$subcommands")"

  if [ -z "$subcommand" ]; then
    __rvm_comp "$subcommands"
    return
  fi
}

_rvm ()
{
  local prev=${COMP_WORDS[COMP_CWORD-1]}

  case "${prev}" in
  use)      _rvm_use ;;
  gemset)   _rvm_gemset ;;
  *)        _rvm_commands ;;
  esac

  return 0
}

complete -o default -o nospace -F _rvm rvm

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rvm-0.1.41 scripts/completion
rvm-0.1.40 scripts/completion
rvm-0.1.39 scripts/completion
rvm-0.1.38 scripts/completion
rvm-0.1.37 scripts/completion
rvm-0.1.36 scripts/completion
rvm-0.1.35 scripts/completion
rvm-0.1.34 scripts/completion
rvm-0.1.33 scripts/completion
rvm-0.1.32 scripts/completion
rvm-0.1.31 scripts/completion
rvm-0.1.30 scripts/completion
rvm-0.1.29 scripts/completion
rvm-0.1.27 scripts/completion