diff options
Diffstat (limited to 'plugins/bower')
| -rw-r--r-- | plugins/bower/bower.plugin.zsh | 101 | 
1 files changed, 72 insertions, 29 deletions
| diff --git a/plugins/bower/bower.plugin.zsh b/plugins/bower/bower.plugin.zsh index ed9c04840..68a67a3cc 100644 --- a/plugins/bower/bower.plugin.zsh +++ b/plugins/bower/bower.plugin.zsh @@ -2,37 +2,80 @@ alias bi="bower install"  alias bl="bower list"  alias bs="bower search" -bower_package_list='' - +_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 curcontext="$curcontext" state line -	typeset -A opt_args - -	_arguments -C \ -		':command:->command' \ -		'*::options:->options' - -	case $state in -		(command) - -			local -a subcommands -			subcommands=(${=$(bower help | grep help | sed -e 's/,//g')}) -			_describe -t commands 'bower' subcommands -		;; - -		(options) -			case $line[1] in - -				(install) -				    if [ -z "$bower_package_list" ];then -                    bower_package_list=$(bower search | awk 'NR > 2' | cut -d '-' -f 2 | cut -d ' ' -f 2 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g") -                fi -				    compadd "$@" $(echo $bower_package_list) -                ;; -			esac -		;; -	esac +    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 | 
