|
@@ -0,0 +1,84 @@
|
|
|
+# Autocompletion for homebrew-cask.
|
|
|
+#
|
|
|
+# This script intercepts calls to the brew plugin and adds autocompletion
|
|
|
+# for the cask subcommand.
|
|
|
+#
|
|
|
+# Author: https://github.com/pstadler
|
|
|
+
|
|
|
+compdef _brew-cask brew
|
|
|
+
|
|
|
+_brew-cask()
|
|
|
+{
|
|
|
+ local curcontext="$curcontext" state line
|
|
|
+ typeset -A opt_args
|
|
|
+
|
|
|
+ _arguments -C \
|
|
|
+ ':command:->command' \
|
|
|
+ ':subcmd:->subcmd' \
|
|
|
+ '*::options:->options'
|
|
|
+
|
|
|
+ case $state in
|
|
|
+ (command)
|
|
|
+ __call_original_brew
|
|
|
+ cask_commands=(
|
|
|
+ 'cask:manage casks'
|
|
|
+ )
|
|
|
+ _describe -t commands 'brew cask command' cask_commands ;;
|
|
|
+
|
|
|
+ (subcmd)
|
|
|
+ case "$line[1]" in
|
|
|
+ cask)
|
|
|
+ if (( CURRENT == 3 )); then
|
|
|
+ local -a subcommands
|
|
|
+ subcommands=(
|
|
|
+ "alfred:used to modify Alfred's scope to include the Caskroom"
|
|
|
+ 'audit:verifies installability of casks'
|
|
|
+ 'checklinks:checks for bad cask links'
|
|
|
+ 'cleanup:cleans up cached downloads'
|
|
|
+ 'create:creates a cask of the given name and opens it in an editor'
|
|
|
+ 'doctor:checks for configuration issues'
|
|
|
+ 'edit:edits the cask of the given name'
|
|
|
+ 'fetch:downloads Cask resources to local cache'
|
|
|
+ 'home:opens the homepage of the cask of the given name'
|
|
|
+ 'info:displays information about the cask of the given name'
|
|
|
+ 'install:installs the cask of the given name'
|
|
|
+ 'list:with no args, lists installed casks; given installed casks, lists installed files'
|
|
|
+ 'search:searches all known casks'
|
|
|
+ 'uninstall:uninstalls the cask of the given name'
|
|
|
+ "update:a synonym for 'brew update'"
|
|
|
+ )
|
|
|
+ _describe -t commands "brew cask subcommand" subcommands
|
|
|
+ fi ;;
|
|
|
+
|
|
|
+ *)
|
|
|
+ __call_original_brew ;;
|
|
|
+ esac ;;
|
|
|
+
|
|
|
+ (options)
|
|
|
+ local -a casks installed_casks
|
|
|
+ local expl
|
|
|
+ case "$line[2]" in
|
|
|
+ list|uninstall)
|
|
|
+ __brew_installed_casks
|
|
|
+ _wanted installed_casks expl 'installed casks' compadd -a installed_casks ;;
|
|
|
+ audit|edit|home|info|install)
|
|
|
+ __brew_all_casks
|
|
|
+ _wanted casks expl 'all casks' compadd -a casks ;;
|
|
|
+ esac ;;
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
+__brew_all_casks() {
|
|
|
+ casks=(`brew cask search`)
|
|
|
+}
|
|
|
+
|
|
|
+__brew_installed_casks() {
|
|
|
+ installed_casks=(`brew cask list`)
|
|
|
+}
|
|
|
+
|
|
|
+__call_original_brew()
|
|
|
+{
|
|
|
+ local ret=1
|
|
|
+ _call_function ret _brew
|
|
|
+ compdef _brew-cask brew
|
|
|
+}
|