dotfiles

*nix config files
git clone git://git.pyratebeard.net/dotfiles.git
Log | Files | Refs | README

_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