OptionParserで書かれたRubyスクリプトのzshの補完設定を自動生成できないものか

% tar [tab]
A  -- append to an archive
c  -- create a new archive
f  -- specify archive file or device
t  -- list archive contents
u  -- update archive
v  -- verbose output
x  -- extract files from an archive

たとえばtarの後でTabを押すとオプションの説明が出てくる。だが、コマンドひとつひとつの補完設定を手作業で追加するのは面倒だし時間がかかる。せっかくOptionParserというDSLを使っているのだから、OptionParserの情報をもとに補完情報を出せないものか。たとえばrcovにはたくさんのオプションがあるのだが、手作業で設定する苦労を考えるとぞっとする。それにオプションが追加変更された場合もそれに応じて書き換えないといけない。もちろんOptionParserの情報だけではきめこまかい設定(オプションの引数にどの有限集合の要素を取るかとか)はできないのだが、オプションの説明が出てくる機能を自動設定できるだけでも十分嬉しい。

OptionParserだけでなく、GNUの--help形式の説明をparseして自動生成とかできないものか。