#!/bin/zsh # grunt-cli # http://gruntjs.com/ # # Copyright (c) 2016 Tyler Kellen, contributors # Licensed under the MIT license. # https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT # Usage: # # To enable zsh completion for grunt, add the following line (minus the # leading #, which is the zsh comment character) to your ~/.zshrc file: # # eval "$(grunt --completion=zsh)" # Enable zsh autocompletion. function _grunt_completion() { local completions # The currently-being-completed word. local cur="${words[@]}" # The current grunt version, available tasks, options, etc. local gruntinfo="$(grunt --version --verbose 2>/dev/null)" # Options and tasks. local opts="$(echo "$gruntinfo" | awk '/Available options: / {$1=$2=""; print $0}')" local compls="$(echo "$gruntinfo" | awk '/Available tasks: / {$1=$2=""; print $0}')" # Only add -- or - options if the user has started typing - [[ "$cur" == -* ]] && compls="$compls $opts" # Trim whitespace. compls=$(echo "$compls" | sed -e 's/^ *//g' -e 's/ *$//g') # Turn compls into an array to of completions. completions=(${=compls}) # Tell complete what stuff to show. compadd -- $completions } compdef _grunt_completion grunt