#compdef rubber rubber-pipe rubber-info local _rubber_version _rubber_path _rubber_modules eval $(rubber --version | sed 's/^.* \([^ ]*\): */_rubber_\1=/') if [[ ${_rubber_version#0} != $_rubber_version ]]; then _rubber_modules=( $(ls $_rubber_path/rubber/modules | sed -n 's/^\([^_].*\)\.py$/\1/p') ) else _rubber_modules=( $(ls $_rubber_path/modules | sed -n 's/.rub$//p') $(ls $_rubber_path/rubber/rules/latex | sed -n 's/^\([^_].*\)\.py$/\1/p') ) fi _rubber_arguments () { _arguments -s \ \*{-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) _rubber_arguments \ '--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) _rubber_arguments \ {-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) _rubber_arguments \ '--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