bower.plugin.zsh
2418 bytes
1alias bi="bower install"
2alias bisd="bower install --save-dev"
3alias bis="bower install --save"
4alias bl="bower list"
5alias bs="bower search"
6
7_bower_installed_packages () {
8 bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
9}
10_bower ()
11{
12 local -a _1st_arguments _no_color _dopts _save_dev _force_latest _production
13 local expl
14 typeset -A opt_args
15
16 _no_color=('--no-color[Do not print colors (available in all commands)]')
17
18 _dopts=(
19 '(--save)--save[Save installed packages into the project"s bower.json dependencies]'
20 '(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
21 )
22
23 _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
24
25 _force_latest=('(--force-latest)--force-latest[Force latest version on conflict]')
26
27 _production=('(--production)--production[Do not install project devDependencies]')
28
29 _1st_arguments=(
30 'cache-clean:Clean the Bower cache, or the specified package caches' \
31 'help:Display help information about Bower' \
32 'info:Version info and description of a particular package' \
33 'init:Interactively create a bower.json file' \
34 'install:Install a package locally' \
35 'link:Symlink a package folder' \
36 'lookup:Look up a package URL by name' \
37 'register:Register a package' \
38 'search:Search for a package by name' \
39 'uninstall:Remove a package' \
40 'update:Update a package' \
41 {ls,list}:'[List all installed packages]'
42 )
43 _arguments \
44 $_no_color \
45 '*:: :->subcmds' && return 0
46
47 if (( CURRENT == 1 )); then
48 _describe -t commands "bower subcommand" _1st_arguments
49 return
50 fi
51
52 case "$words[1]" in
53 install)
54 _arguments \
55 $_dopts \
56 $_save_dev \
57 $_force_latest \
58 $_no_color \
59 $_production
60 ;;
61 update)
62 _arguments \
63 $_dopts \
64 $_no_color \
65 $_force_latest
66 _bower_installed_packages
67 compadd "$@" $(echo $bower_package_list)
68 ;;
69 uninstall)
70 _arguments \
71 $_no_color \
72 $_dopts
73 _bower_installed_packages
74 compadd "$@" $(echo $bower_package_list)
75 ;;
76 *)
77 _arguments \
78 $_no_color \
79 ;;
80 esac
81
82}
83
84compdef _bower bower