-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
731 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
#compdef brew | ||
#autoload | ||
|
||
# imported from the latest homebrew contributions | ||
|
||
_brew_all_formulae() { | ||
formulae=(`brew search`) | ||
} | ||
|
||
_brew_installed_formulae() { | ||
installed_formulae=(`brew list`) | ||
} | ||
|
||
local -a _1st_arguments | ||
_1st_arguments=( | ||
'cat:display formula file for a formula' | ||
'cleanup:uninstall unused and old versions of packages' | ||
'create:create a new formula' | ||
'deps:list dependencies and dependants of a formula' | ||
'doctor:audits your installation for common issues' | ||
'edit:edit a formula' | ||
'home:visit the homepage of a formula or the brew project' | ||
'info:information about a formula' | ||
'install:install a formula' | ||
'link:link a formula' | ||
'list:list files in a formula or not-installed formulae' | ||
'log:git commit log for a formula' | ||
'missing:check all installed formuale for missing dependencies.' | ||
'outdated:list formulas for which a newer version is available' | ||
'prune:remove dead links' | ||
'remove:remove a formula' | ||
'search:search for a formula (/regex/ or string)' | ||
'server:start a local web app that lets you browse formulae (requires Sinatra)' | ||
'unlink:unlink a formula' | ||
'update:freshen up links' | ||
'upgrade:upgrade outdated formulae' | ||
'uses:show formulas which depend on a formula' | ||
) | ||
|
||
local expl | ||
local -a formulae installed_formulae | ||
|
||
_arguments \ | ||
'(-v)-v[verbose]' \ | ||
'(--cellar)--cellar[brew cellar]' \ | ||
'(--config)--config[brew configuration]' \ | ||
'(--env)--env[brew environment]' \ | ||
'(--repository)--repository[brew repository]' \ | ||
'(--version)--version[version information]' \ | ||
'(--prefix)--prefix[where brew lives on this system]' \ | ||
'(--cache)--cache[brew cache]' \ | ||
'*:: :->subcmds' && return 0 | ||
|
||
if (( CURRENT == 1 )); then | ||
_describe -t commands "brew subcommand" _1st_arguments | ||
return | ||
fi | ||
|
||
case "$words[1]" in | ||
search|-S) | ||
_arguments \ | ||
'(--macports)--macports[search the macports repository]' \ | ||
'(--fink)--fink[search the fink repository]' ;; | ||
list|ls) | ||
_arguments \ | ||
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \ | ||
'(--versions)--versions[list all installed versions of a formula]' \ | ||
'1: :->forms' && return 0 | ||
|
||
if [[ "$state" == forms ]]; then | ||
_brew_installed_formulae | ||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae | ||
fi ;; | ||
install|home|homepage|log|info|abv|uses|cat|deps|edit|options) | ||
_brew_all_formulae | ||
_wanted formulae expl 'all formulae' compadd -a formulae ;; | ||
remove|rm|uninstall|unlink|cleanup|link|ln) | ||
_brew_installed_formulae | ||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;; | ||
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) | ||
|
||
_bundler-installed() { | ||
which bundle > /dev/null 2>&1 | ||
} | ||
|
||
_within-bundled-project() { | ||
local check_dir=$PWD | ||
while [ $check_dir != "/" ]; do | ||
[ -f "$check_dir/Gemfile" ] && return | ||
check_dir="$(dirname $check_dir)" | ||
done | ||
false | ||
} | ||
|
||
_run-with-bundler() { | ||
if _bundler-installed && _within-bundled-project; then | ||
bundle exec $@ | ||
else | ||
$@ | ||
fi | ||
} | ||
|
||
auto_bundle_exec() { | ||
for cmd in $bundled_commands; do | ||
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}" | ||
alias $cmd=bundled_$cmd | ||
|
||
if which _$cmd > /dev/null 2>&1; then | ||
compdef _$cmd bundled_$cmd=$cmd | ||
fi | ||
done | ||
} | ||
|
||
auto_bundle_exec | ||
# vim:set ft=zsh: |
Oops, something went wrong.