Commit 012afe23 authored by dongweiming's avatar dongweiming
Browse files

The current version of bower is completely unavailable, plugin depth modification

parent bc3cadf5
...@@ -2,37 +2,80 @@ alias bi="bower install" ...@@ -2,37 +2,80 @@ alias bi="bower install"
alias bl="bower list" alias bl="bower list"
alias bs="bower search" 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 () _bower ()
{ {
local curcontext="$curcontext" state line local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
typeset -A opt_args local expl
typeset -A opt_args
_arguments -C \
':command:->command' \ _no_color=('--no-color[Do not print colors (available in all commands)]')
'*::options:->options'
_dopts=(
case $state in '(--save)--save[Save installed packages into the project"s bower.json dependencies]'
(command) '(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
)
local -a subcommands
subcommands=(${=$(bower help | grep help | sed -e 's/,//g')}) _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
_describe -t commands 'bower' subcommands
;; _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
(options) _production=('(--production)--production[Do not install project devDependencies]')
case $line[1] in
_1st_arguments=(
(install) 'cache-clean:Clean the Bower cache, or the specified package caches' \
if [ -z "$bower_package_list" ];then 'help:Display help information about Bower' \
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") 'info:Version info and description of a particular package' \
fi 'init:Interactively create a bower.json file' \
compadd "$@" $(echo $bower_package_list) 'install:Install a package locally' \
;; 'link:Symlink a package folder' \
esac 'lookup:Look up a package URL by name' \
;; 'register:Register a package' \
esac '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 compdef _bower bower
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment