_composer (2867B)
1 #compdef composer 2 # ------------------------------------------------------------------------------ 3 # Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users 4 # All rights reserved. 5 # 6 # Redistribution and use in source and binary forms, with or without 7 # modification, are permitted provided that the following conditions are met: 8 # * Redistributions of source code must retain the above copyright 9 # notice, this list of conditions and the following disclaimer. 10 # * Redistributions in binary form must reproduce the above copyright 11 # notice, this list of conditions and the following disclaimer in the 12 # documentation and/or other materials provided with the distribution. 13 # * Neither the name of the zsh-users nor the 14 # names of its contributors may be used to endorse or promote products 15 # derived from this software without specific prior written permission. 16 # 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 # DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY 21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 # ------------------------------------------------------------------------------ 28 # Description 29 # ----------- 30 # 31 # Completion script for composer (https://getcomposer.org/). 32 # 33 # ------------------------------------------------------------------------------ 34 # Authors 35 # ------- 36 # 37 # * Daniel Gomes (me@danielcsgomes.com) 38 # * Valerii Hiora (https://github.com/vhbit) 39 # * loranger (https://github.com/loranger) 40 # 41 # ------------------------------------------------------------------------------ 42 43 local curcontext=$curcontext state line 44 declare -A opt_args 45 46 _composer_get_command_list () { 47 composer --no-ansi | sed "1,/Available commands/d" | awk '/ [a-z]+/ { print $1 }' 48 } 49 50 _composer_get_required_list () { 51 composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }' 52 } 53 54 55 _composer () { 56 local curcontext="$curcontext" state line 57 typeset -A opt_args 58 59 _arguments \ 60 '1: :->command'\ 61 '*: :->args' 62 if [ -f composer.json ]; then 63 case $state in 64 command) 65 compadd `_composer_get_command_list` 66 ;; 67 *) 68 compadd `_composer_get_required_list` 69 ;; 70 esac 71 else 72 compadd create-project init search selfupdate show 73 fi 74 } 75 76 compdef _composer composer