#compdef rubber rubber-pipe rubber-info local _rubber_version _rubber_path _rubber_modules _rubber_args eval $(rubber --version 2>/dev/null | sed 's/^.* \([^ ]*\): */_rubber_\1=/') if [[ ${_rubber_version#0} != $_rubber_version ]]; then _rubber_modules=( $_rubber_path/rubber/modules/[^_]*.py(N:r:t) ) else _rubber_modules=( $_rubber_path/modules/*.rub(N:r:t) $_rubber_path/rubber/rules/latex/[^_]*.py(N:r:t) ) fi _rubber_args=( \*{-c,--command}'=[run the directive CMD before parsing]:command' \*{-e,--epilogue}'=[run the directive CMD after parsing]:command' {-z,--gzip}'[compress the final document]' '(- *)'{-h,--help}'[show help]' '--into=[go to directory DIR before compiling]:directory:_files -/' {-l,--landscape}'[change paper orientation (if relevant)]' {-n,--maxerr}'=[display at most NUM errors]:num' \*{-m,--module}'=[use module]:module:($_rubber_modules)' '--only=[only include the specified SOURCES]:sources' \*{-o,--post}'=[postprocess with module]:postprocessor:($_rubber_modules)' {-d,--pdf}'[produce PDF output instead of DVI]' {-p,--ps}'[produce a PostScript document]' {-q,--quiet}'[suppress messages]' \*{-r,--read}'[read additional directives from a file]:directives files:_files' {-s,--short}'[display errors in a compact form]' \*{-I,--texpath}'=[add DIR to the search path for LaTeX]:tex path:_files -/' \*{-v,--verbose}'[increase verbosity]' '--version[print version information and exit]' ) case "$service" in rubber) _arguments -s \ "$_rubber_args[@]" \ '--clean[remove produced files instead of compiling]' \ {-f,--force}'[force at least one compilation]' \ '--inplace[compile the documents from their source directory]' \ \*{-W,--warn}'=[report warnings of the given TYPE]:warnings:(all boxes misc refs)' \ '*:LaTeX files:_files -g "*.(tex|dtx|lhs|w)(-.)"' return 0 ;; rubber-pipe) _arguments -s \ "$_rubber_args[@]" \ {-k,--keep}'[keep the temporary files after compiling]' \ \*{-W,--warn}'=[report warnings of the given TYPE]:warnings:(all boxes misc refs)' return 0 ;; rubber-info) _arguments -s \ "$_rubber_args[@]" \ '--boxes[report overfull and underfull boxes]' \ '--check[report errors or warnings default action]' \ '--deps[show the target file s dependencies]' \ '--errors[show all errors that occured during compilation]' \ '--refs[show the list of undefined references]' \ '--warnings[show all LaTeX warnings]' \ ':LaTeX file:_files -g "*.(tex|dtx|lhs|w)(-.)"' return 0 ;; esac return 1