From 1c95ef8afd912da74fcaa49a721a5999446f2e4f Mon Sep 17 00:00:00 2001 From: Michael Mior Date: Sat, 16 Jul 2016 10:40:15 -0400 Subject: [PATCH] Add completion script for rsvm --- src/_rsvm | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/_rsvm diff --git a/src/_rsvm b/src/_rsvm new file mode 100644 index 0000000..d6de50c --- /dev/null +++ b/src/_rsvm @@ -0,0 +1,88 @@ +#compdef rsvm +# ------------------------------------------------------------------------------ +# Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the zsh-users nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for rsvm (https://github.com/sdepold/rsvm). +# Adapted from Docker Machine completion by hhatto (https://github.com/ilkka) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * michaelmior (https://github.com/michaelmior) +# +# ------------------------------------------------------------------------------ + +# helper function for completing available rusts +__rusts() { + declare -a rusts_cmd + rusts_cmd=($(ls "$HOME/.rsvm/versions")) + _describe 'rusts' rusts_cmd +} + +# subcommands +local -a _rsvm_cmds + +_rsvm_cmds=( + 'help:Show a help message' \ + 'install:Download and install a version' \ + 'uninstall:Uninstall a version' \ + 'use:Activate a version for now and the future' \ + 'ls:List all installed versions of rust' \ + 'ls-remote:List remote versions available for install' \ + 'ls-channel:Print a channel version available for install' \ +) + +# subcommand completion functions +__uninstall() { + __rusts +} + +__use() { + __rusts +} + +# common args +_arguments \ + '--help[show help]' \ + '--version[print the version]' \ + '*:: :->command' + +# start rusts! +if (( CURRENT == 1 )); then + _describe -t commands 'rsvm command' _rsvm_cmds +fi + +local -a _command_args +case "$words[1]" in + uninstall) + __uninstall ;; + use) + __use ;; +esac