diff options
Diffstat (limited to 'completions/xmllint')
-rw-r--r-- | completions/xmllint | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/completions/xmllint b/completions/xmllint new file mode 100644 index 00000000..5b9c301c --- /dev/null +++ b/completions/xmllint @@ -0,0 +1,55 @@ +# bash completion for xmllint(1) + +have xmllint && +_xmllint() +{ + local cur prev + + COMPREPLY=() + _get_comp_words_by_ref cur prev + + case $prev in + -o|--output) + _filedir + return 0 + ;; + --path|--dtdvalidfpi|--maxmem|--encode|--pattern) + # argument required but no completions available + return 0 + ;; + --dtdvalid) + _filedir 'dtd?(.gz)' + return 0 + ;; + --relaxng) + _filedir 'rng?(.gz)' + return 0 + ;; + --schema) + _filedir 'xsd?(.gz)' + return 0 + ;; + --schematron) + _filedir 'sch?(.gz)' + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '$( xmllint --help 2>&1 | \ + sed -ne "s/^[[:space:]]*\(--[^[:space:]:]*\).*/\1/p" ) \ + -o' -- "$cur" ) ) + return 0 + fi + + _filedir '@(*ml|htm|svg|xs[dl]|rng|wsdl|jnlp)?(.gz)' +} && +complete -F _xmllint xmllint + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh |