|
@@ -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
|
|
|
|
- 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
|
|
compdef _bower bower
|