Parent directory

composer.plugin.zsh

2359 bytes
 1## Basic Composer command completion
 2# Since Zsh 5.7, an improved composer command completion is provided
 3if ! is-at-least 5.7; then
 4  _composer () {
 5    local curcontext="$curcontext" state line
 6    typeset -A opt_args
 7    _arguments '*:: :->subcmds'
 8
 9    if (( CURRENT == 1 )) || ( (( CURRENT == 2 )) && [[ "$words[1]" = "global" ]] ); then
10      # Command list
11      local -a subcmds
12      subcmds=("${(@f)"$($_comp_command1 --no-ansi 2>/dev/null | awk '
13        /Available commands/{ r=1 }
14        r == 1 && /^[ \t]*[a-z]+/{
15          gsub(/^[ \t]+/, "")
16          gsub(/  +/, ":")
17          print $0
18        }
19      ')"}")
20      _describe -t commands 'composer command' subcmds
21    else
22      # Required list
23      compadd $($_comp_command1 show -s --no-ansi 2>/dev/null \
24        | sed '1,/requires/d' \
25        | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }')
26    fi
27  }
28
29  compdef _composer composer
30  compdef _composer composer.phar
31fi
32
33
34## Aliases
35alias c='composer'
36alias ccp='composer create-project'
37alias cdo='composer dump-autoload -o'
38alias cdu='composer dump-autoload'
39alias cget='curl -s https://getcomposer.org/installer | php'
40alias cgr='composer global require'
41alias cgrm='composer global remove'
42alias cgu='composer global update'
43alias ci='composer install'
44alias co='composer outdated'
45alias cod='composer outdated --direct'
46alias cr='composer require'
47alias crm='composer remove'
48alias cs='composer show'
49alias csu='composer self-update'
50alias cu='composer update'
51alias cuh='composer update --working-dir=$(composer config -g home)'
52
53
54## If Composer not found, try to add known directories to $PATH
55if (( ! $+commands[composer] )); then
56  [[ -d "$HOME/.composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.composer/vendor/bin"
57  [[ -d "$HOME/.config/composer/vendor/bin" ]] && export PATH="$PATH:$HOME/.config/composer/vendor/bin"
58
59  # If still not found, don't do the rest of the script
60  (( $+commands[composer] )) || return 0
61fi
62
63
64## Add Composer's global binaries to PATH
65autoload -Uz _store_cache _retrieve_cache _cache_invalid
66_retrieve_cache composer
67
68if [[ -z $__composer_bin_dir ]]; then
69  __composer_bin_dir=$(composer global config bin-dir --absolute 2>/dev/null)
70  _store_cache composer __composer_bin_dir
71fi
72
73# Add Composer's global binaries to PATH
74export PATH="$PATH:$__composer_bin_dir"
75
76unset __composer_bin_dir