]> src.twobees.de Git - dotfiles.git/blob - stow/oh-my-zsh/.oh-my-zsh/plugins/composer/composer.plugin.zsh
...
[dotfiles.git] / stow / oh-my-zsh / .oh-my-zsh / plugins / composer / composer.plugin.zsh
1 ## Basic Composer command completion
2 # Since Zsh 5.7, an improved composer command completion is provided
3 if ! 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
31 fi
32
33
34 ## Aliases
35 alias c='composer'
36 alias ccp='composer create-project'
37 alias cdo='composer dump-autoload -o'
38 alias cdu='composer dump-autoload'
39 alias cget='curl -s https://getcomposer.org/installer | php'
40 alias cgr='composer global require'
41 alias cgrm='composer global remove'
42 alias cgu='composer global update'
43 alias ci='composer install'
44 alias co='composer outdated'
45 alias cod='composer outdated --direct'
46 alias cr='composer require'
47 alias crm='composer remove'
48 alias cs='composer show'
49 alias csu='composer self-update'
50 alias cu='composer update'
51 alias cuh='composer update --working-dir=$(composer config -g home)'
52
53
54 ## If Composer not found, try to add known directories to $PATH
55 if (( ! $+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
61 fi
62
63
64 ## Add Composer's global binaries to PATH
65 autoload -Uz _store_cache _retrieve_cache _cache_invalid
66 _retrieve_cache composer
67
68 if [[ -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
71 fi
72
73 # Add Composer's global binaries to PATH
74 export PATH="$PATH:$__composer_bin_dir"
75
76 unset __composer_bin_dir