1#!/bin/zsh
2# Completion for zsh:
3# (based on <http://d.hatena.ne.jp/rubikitch/20071002/zshcomplete>)
4#
5# (1) install this file.
6#      mkdir -p ~/.zsh.d
7#      cp rb_optparse.zsh ~/.zsh.d/rb_optparse.zsh
8#
9# (2) load the script, and add a directory to fpath before compinit.
10#      echo '. ~/.zsh.d/rb_optparse.zsh' >> ~/.zshrc
11#      echo 'fpath=(~/.zsh.d/Completion $fpath)' >> ~/.zshrc
12#      echo 'autoload -U compinit; compinit' >> ~/.zshrc
13#
14# (3) restart zsh.
15#
16# (4) geneate completion files once.
17#      generate-complete-function/ruby/optparse COMMAND1
18#      generate-complete-function/ruby/optparse COMMAND2
19#
20
21generate-complete-function/ruby/optparse ()
22{
23    local cmpl="_${1:t}"
24    mkdir -p "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}"
25    $1 "--*-completion-zsh=${1:t}" >! "${ZSH_COMPLETION_DIR-$HOME/.zsh.d/Completion}/$cmpl"
26    if [[ $(type -w "$cmpl") == "${cmpl}: function" ]]; then
27	unfunction "$cmpl"
28	autoload -U "$cmpl"
29    else
30        compinit "$cmpl"
31    fi
32}
33
34compdef _command generate-complete-function/ruby/optparse
35
36for cmd in "$@"; do
37    generate-complete-function/ruby/optparse "$cmd"
38done
39