zsh-completions/src/_rvm

143 lines
5.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#compdef rvm
# ------------------------------------------------------------------------------
# Copyright (c) 2009-2011 Wayne E. Seguin
# Copyright (c) 2011-2015 Michal Papis
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for rvm (https://rvm.beginrescueend.com/).
#
# Source: https://github.com/rvm/rvm/blob/master/scripts/extras/completion.zsh/_rvm
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Bruno Michel (https://github.com/nono)
#
# ------------------------------------------------------------------------------
local curcontext="$curcontext" state line cmds ret=1
_arguments -C \
'(- 1 *)'{-v,--version}'[display version information]' \
'(-l --level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \
'--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \
'--source[src directory to use (~/.rvm/src/)]:path:_files' \
'--archives[directory for downloaded files (~/.rvm/archives/)]:path:_files' \
'-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \
'-e[Execute code from the command line]:code' \
'-G[root gem path to use]:path:_files' \
'--gems[Used to set the gems_flag, use with remove to remove gems]' \
'--archive[Used to set the archive_flag, use with remove to remove archive]' \
'--patch[With MRI Rubies you may specify one or more full paths to patches]:paths:->patches' \
'(-C --configure)'{-C,--configure}'=[custom configure options]' \
'--nice[process niceness (for slow computers, default 0)]:number' \
'--ree-options[Options passed directly to ree ./installer on the command line]:options' \
'--head[with update, updates rvm to git head version]' \
'--rubygems[with update, updates rubygems for selected ruby]' \
'--default[with ruby select, sets a default ruby for new shells]' \
'--debug[Toggle debug mode on for very verbose output]' \
'--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \
'--force[Force install, even given ruby is already install]' \
'--summary[Used with rubydo to print out a summary of the commands run]' \
'--latest[with gemset --dump skips version strings for latest gem]' \
'--gems[with uninstall/remove removes gems with the interpreter]' \
'--docs[with install, attempt to generate ri after installation]' \
'--reconfigure[Force ./configure on install even if Makefile already exists]' \
'1: :->cmds' \
'*: :->args' && ret=0
case $state in
patches)
compset -P '*,'
compset -S ',*'
_files -q -S ,
;;
cmds)
cmds=( ${(f)"$(_call_program commands rvm help 2> /dev/null | __rvm_sed -e '/^== Action/,/^== Implementation/!d; / :: /!d; s/^[ *]*\([^ ]*\) *:: *\(.*\)/\1:\2/')"} )
cmds+=( $(rvm list strings) )
_describe -t commands 'rvm command' cmds && ret=0
;;
args)
case $line[1] in
(use|uninstall|remove|list)
if (( CURRENT == 3 )); then
# See if weve made it to the @; eg, 1.9.2@
if ! __rvm_grep '@' <<< "${line[CURRENT-1]}" >/dev/null ; then
_values -S , 'rubies' \
$(rvm list strings | __rvm_sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') \
default system $(rvm alias list names) && ret=0
else
# Construct a full version string for each of the gemsets.
# Eg, 1.9.2@min 1.9.2@rail3 …
_values -S , 'gemsets' \
$(rvm ${line[CURRENT-1]%%@*} gemset list | __rvm_awk '/^[ -_[:alnum:]]+$/ {print "'${line[CURRENT-1]%%@*}'@"$1}')
fi
fi
;;
(install|fetch)
_values -S , 'rubies' $(rvm list known_strings) && ret=0
;;
gemset)
if (( CURRENT == 3 )); then
_values 'gemset_commands' $(rvm gemset help | __rvm_sed -e '/create/!d; s/^.*[{]\(.*\)[}].*$/\1/; s/,/ /g')
else
#_values -S , 'gemsets' $(rvm gemset list | __rvm_grep -v gemset 2>/dev/null)
_values -S , 'gemsets' $(rvm gemset list | __rvm_grep -Ev '(gemset|info)' 2>/dev/null | __rvm_awk '/^[ -_[:alnum:]]+$/ {print '$1'}')
fi
ret=0
;;
package)
if (( CURRENT == 3 )); then
_values 'package_commands' $(rvm package | __rvm_sed -e '/Usage/!d; s/^.*[{]\(.*\)[}] [{].*$/\1/; s/,/ /g')
else
_values 'packages' $(rvm package | __rvm_sed -e '/Usage/!d; s/^.*[}] [{]\(.*\)[}].*$/\1/; s/,/ /g')
fi
ret=0
;;
*)
(( ret )) && _message 'no more arguments'
;;
esac
;;
esac
return ret
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et