diff options
Diffstat (limited to 'plugins/bower')
| -rwxr-xr-x | plugins/bower/_bower | 58 | ||||
| -rw-r--r-- | plugins/bower/bower.plugin.zsh | 81 | 
2 files changed, 139 insertions, 0 deletions
| diff --git a/plugins/bower/_bower b/plugins/bower/_bower new file mode 100755 index 000000000..ae0ca4a4e --- /dev/null +++ b/plugins/bower/_bower @@ -0,0 +1,58 @@ + + +# Credits to npm's awesome completion utility. +# +# Bower completion script, based on npm completion script. + +###-begin-bower-completion-### +# +# Installation: bower completion >> ~/.bashrc  (or ~/.zshrc) +# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower +# + +COMP_WORDBREAKS=${COMP_WORDBREAKS/=/} +COMP_WORDBREAKS=${COMP_WORDBREAKS/@/} +export COMP_WORDBREAKS + +if type complete &>/dev/null; then +  _bower_completion () { +    local si="$IFS" +    IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \ +                           COMP_LINE="$COMP_LINE" \ +                           COMP_POINT="$COMP_POINT" \ +                           bower completion -- "${COMP_WORDS[@]}" \ +                           2>/dev/null)) || return $? +    IFS="$si" +  } +  complete -F _bower_completion bower +elif type compdef &>/dev/null; then +  _bower_completion() { +    si=$IFS +    compadd -- $(COMP_CWORD=$((CURRENT-1)) \ +                 COMP_LINE=$BUFFER \ +                 COMP_POINT=0 \ +                 bower completion -- "${words[@]}" \ +                 2>/dev/null) +    IFS=$si +  } +  compdef _bower_completion bower +elif type compctl &>/dev/null; then +  _bower_completion () { +    local cword line point words si +    read -Ac words +    read -cn cword +    let cword-=1 +    read -l line +    read -ln point +    si="$IFS" +    IFS=$'\n' reply=($(COMP_CWORD="$cword" \ +                       COMP_LINE="$line" \ +                       COMP_POINT="$point" \ +                       bower completion -- "${words[@]}" \ +                       2>/dev/null)) || return $? +    IFS="$si" +  } +  compctl -K _bower_completion bower +fi +###-end-bower-completion-### + diff --git a/plugins/bower/bower.plugin.zsh b/plugins/bower/bower.plugin.zsh new file mode 100644 index 000000000..68a67a3cc --- /dev/null +++ b/plugins/bower/bower.plugin.zsh @@ -0,0 +1,81 @@ +alias bi="bower install" +alias bl="bower list" +alias bs="bower search" + +_bower_installed_packages () { +    bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//') +} +_bower () +{ +    local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production +    local expl +    typeset -A opt_args + +    _no_color=('--no-color[Do not print colors (available in all commands)]') + +    _dopts=( +        '(--save)--save[Save installed packages into the project"s bower.json dependencies]' +        '(--force)--force[Force fetching remote resources even if a local copy exists on disk]' +    ) + +    _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]') + +    _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]') + +    _production=('(--production)--production[Do not install project devDependencies]') + +    _1st_arguments=( +    'cache-clean:Clean the Bower cache, or the specified package caches' \ +    'help:Display help information about Bower' \ +    'info:Version info and description of a particular package' \ +    'init:Interactively create a bower.json file' \ +    'install:Install a package locally' \ +    'link:Symlink a package folder' \ +    'lookup:Look up a package URL by name' \ +    'register:Register a package' \ +    'search:Search for a package by name' \ +    'uninstall:Remove a package' \ +    'update:Update a package' \ +    {ls,list}:'[List all installed packages]' +    ) +    _arguments \ +    $_no_color \ +    '*:: :->subcmds' && return 0 + +    if (( CURRENT == 1 )); then +        _describe -t commands "bower subcommand" _1st_arguments +        return +    fi + +    case "$words[1]" in +        install) +        _arguments \ +        $_dopts \ +        $_save_dev \ +        $_force_lastest \ +        $_no_color \ +        $_production +        ;; +        update) +        _arguments \ +        $_dopts \ +        $_no_color \ +        $_force_lastest +        _bower_installed_packages +        compadd "$@" $(echo $bower_package_list) +        ;; +        uninstall) +        _arguments \ +        $_no_color \ +        $_dopts +        _bower_installed_packages +        compadd "$@" $(echo $bower_package_list) +        ;; +        *) +        $_no_color \ +        ;; +    esac + +} + +compdef _bower bower | 
