diff options
author | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2017-09-25 23:46:54 -0300 |
---|---|---|
committer | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2017-09-25 23:46:54 -0300 |
commit | 6d88f1055806932d9291f96847d2b691cccda2cd (patch) | |
tree | 0ff79eedaa8a239331256048981deedbd0721965 /completions/puppet | |
parent | 059a87a5936cfebfd2d71ab8057002cafb2ea051 (diff) | |
download | bash-completion-6d88f1055806932d9291f96847d2b691cccda2cd.tar.gz |
New upstream version 2.7upstream/2.7
Diffstat (limited to 'completions/puppet')
-rw-r--r-- | completions/puppet | 257 |
1 files changed, 137 insertions, 120 deletions
diff --git a/completions/puppet b/completions/puppet index f24917a7..b36b0341 100644 --- a/completions/puppet +++ b/completions/puppet @@ -21,8 +21,8 @@ _puppet_certs() PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type puppetca &>/dev/null \ && puppetca=puppetca - if [[ "$1" = '--all' ]]; then - cert_list=$( $puppetca --list --all | sed -e 's/^[+-]\?\s*\(\S\+\)\s\+.*$/\1/' ) + if [[ "$1" == --all ]]; then + cert_list=$( $puppetca --list --all | command sed -e 's/^[+-]\{0,1\}\s*\(\S\+\)\s\+.*$/\1/' ) else cert_list=$( $puppetca --list ) fi @@ -31,7 +31,7 @@ _puppet_certs() _puppet_types() { - puppet_types=$( puppet describe --list | sed -e 's/^\(\S\+\).*$/\1/' ) + puppet_types=$( puppet describe --list | command sed -e 's/^\(\S\{1,\}\).*$/\1/' ) COMPREPLY+=( $( compgen -W "$puppet_types" -- "$cur" ) ) } @@ -41,270 +41,287 @@ _puppet_references() PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type puppetdoc &>/dev/null \ && puppetdoc=puppetdoc - puppet_doc_list=$( $puppetdoc --list | sed -e 's/^\(\S\+\).*$/\1/' ) + puppet_doc_list=$( $puppetdoc --list | command sed -e 's/^\(\S\{1,\}\).*$/\1/' ) COMPREPLY+=( $( compgen -W "$puppet_doc_list" -- "$cur" ) ) } +_puppet_subcmd_opts() +{ + # puppet cmd help is somewhat slow, avoid if possible + [[ -z $cur || $cur == -* ]] && \ + COMPREPLY+=( $( compgen -W \ + '$( _parse_usage "$1" "help $2" )' -- "$cur" ) ) +} + _puppet() { local cur prev words cword _init_completion || return - local xspec helpopts command subcommand + local xspec helpopts subcommand action case $prev in - --help) - return 0 + -h|--help|-V|--version) + return ;; esac case ${words[0]} in puppetmasterd) - command=master + subcommand=master ;; puppetd) - command=agent + subcommand=agent ;; puppetca) - command=cert + subcommand=cert ;; ralsh) - command=resource + subcommand=resource ;; puppetrun) - command=kick + subcommand=kick ;; puppetqd) - command=queue + subcommand=queue ;; filebucket) - command=filebucket + subcommand=filebucket ;; puppetdoc) - command=doc + subcommand=doc ;; pi) - command=describe + subcommand=describe ;; puppet) case ${words[1]} in - agent|apply|cert|describe|doc|filebucket|kick|master|queue|resource) - command=${words[1]} - ;; - *.pp|*.rb|-*) - command=apply - ;; - *) - COMPREPLY=( $( compgen -W 'agent apply cert describe doc - filebucket kick master queue resource' -- "$cur" ) ) - return 0 - ;; + agent|apply|cert|describe|doc|filebucket|kick|master|parser|queue|resource) + subcommand=${words[1]} + ;; + *.pp|*.rb) + subcommand=apply + ;; + *) + COMPREPLY=( $( compgen -W 'agent apply cert describe doc + filebucket kick master parser queue resource' \ + -- "$cur" ) ) + return + ;; esac esac - case $command in + case $subcommand in agent) case $prev in + --certname) + _known_hosts_real "$cur" + return + ;; + --digest) + _puppet_digest + return + ;; --fqdn) - return 0 + _known_hosts_real "$cur" + return ;; - --logdest) + -l|--logdest) _puppet_logdest - return 0 - ;; - --serve) - # From /usr/lib/ruby/1.8/puppet/network/handler/ - COMPREPLY=( $( compgen -W 'ca filebucket fileserver master - report runner status' -- "$cur" ) ) - return 0 + return ;; - --digest) - _puppet_digest - return 0 + --masterport) + COMPREPLY=( $( compgen -W '8140' -- "$cur" ) ) + return ;; - --waitforcert) + -w|--waitforcert) COMPREPLY=( $( compgen -W '0 15 30 60 120' -- "$cur" ) ) - return 0 + return ;; *) - COMPREPLY=( $( compgen -W '--daemonize --no-daemonize - --debug --detailed-exitcodes --disable --enable --help - --fqdn --logdest --onetime --serve --test --noop - --digest --fingerprint --version --verbose - --waitforcert --no-client' -- "$cur" ) ) - return 0 + _puppet_subcmd_opts "$1" $subcommand + # _parse_usage doesn't grok [-D|--daemonize|--no-daemonize] + COMPREPLY+=( $( compgen -W '--no-daemonize' -- "$cur" ) ) + return esac ;; apply) case $prev in - --logdest) + --catalog) + COMPREPLY=( $( compgen -W '-' -- "$cur" ) ) + _filedir json + return + ;; + --execute) + return + ;; + -l|--logdest) _puppet_logdest - return 0 + return ;; *) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --debug - --verbose --execute --detailed-exitcodes - --logdest' -- "$cur" ) ) + _puppet_subcmd_opts "$1" $subcommand else _filedir fi - return 0 + return esac ;; cert) case $prev in --digest) _puppet_digest - return 0 + return ;; *) - subcommand=$prev - COMPREPLY=( $( compgen -W '--digest --debug --verbose' \ + action=$prev + COMPREPLY=( $( compgen -W '--digest --debug --help --verbose --version' \ -- "$cur" ) ) - case $subcommand in - --generate) + case $action in + fingerprint|list|verify|--fingerprint|--list|--verify) + COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) + _puppet_certs --all + return + ;; + generate|--generate) _known_hosts_real "$cur" - return 0 + return ;; - --clean|--fingerprint|--revoke|--verify) - COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) + clean|print|revoke|--clean|--print|--revoke) _puppet_certs --all - return 0 + return ;; - --sign) + sign|--sign) COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) _puppet_certs - return 0 - ;; - --list|--print) - COMPREPLY+=( $( compgen -W '--all' -- "$cur" ) ) - return 0 + return ;; *) - COMPREPLY=( $( compgen -W '--clean --generate - --help --list --print --fingerprint --revoke - --sign --version --verify' -- "$cur" ) ) - return 0 + COMPREPLY+=( $( compgen -W 'clean fingerprint generate + list print revoke sign verify reinventory' -- "$cur" ) ) + return esac esac ;; describe) - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --short --providers --list - --meta' -- "$cur" ) ) - else + _puppet_subcmd_opts "$1" $subcommand + if [[ "$cur" != -* ]]; then _puppet_types fi - return 0 + return ;; doc) case $prev in - --outputdir) + -o|--outputdir) _filedir -d - return 0 + return ;; - --mode) + -m|--mode) COMPREPLY=( $( compgen -W 'text trac pdf rdoc' -- "$cur" ) ) - return 0 + return ;; - --reference) + -r|--reference) _puppet_references - return 0 + return ;; *) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --help --outputdir - --mode --reference --charset --list' -- "$cur" ) ) + _puppet_subcmd_opts "$1" $subcommand else _filedir fi - return 0 + return esac ;; filebucket) case $prev in - --server) + -s|--server) _known_hosts_real "$cur" - return 0 + return ;; - --bucket) + -b|--bucket) _filedir -d - return 0 + return ;; *) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --debug - --verbose --local --remote --server --bucket' \ - -- "$cur" ) ) + _puppet_subcmd_opts "$1" $subcommand else COMPREPLY=( $( compgen -W 'backup get restore' \ -- "$cur" ) ) _filedir fi - return 0 + return esac ;; kick) case $prev in - --class) - return 0 + -c|--class) + return ;; --host) _known_hosts_real "$cur" - return 0 + return ;; - --tag) - return 0 + -t|--tag) + return ;; *) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all --class --debug - --foreground --help --host --no-fqdn - --ignoreschedules --tag --test --ping' -- "$cur" ) ) + _puppet_subcmd_opts "$1" $subcommand else _known_hosts_real "$cur" fi - return 0 + return esac ;; master) case $prev in - --logdest) + -l|--logdest) _puppet_logdest - return 0 + return ;; *) - COMPREPLY=( $( compgen -W '--daemonize --no-daemonize - --debug --help --logdest --verbose --version' \ - -- "$cur" ) ) - return 0 + _puppet_subcmd_opts "$1" $subcommand + # _parse_usage doesn't grok [-D|--daemonize|--no-daemonize] + COMPREPLY+=( $( compgen -W '--no-daemonize' -- "$cur" ) ) + return + esac + ;; + parser) + action=$prev + case $action in + validate) + _filedir pp + return + ;; + *) + COMPREPLY=( $( compgen -W 'validate' -- "$cur" ) ) + return esac ;; queue) case $prev in - --logdest) + -l|--logdest) _puppet_logdest - return 0 + return ;; *) if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--help --version --debug - --verbose --execute --detailed-exitcodes - --logdest' -- "$cur" ) ) + _puppet_subcmd_opts "$1" $subcommand else _filedir fi - return 0 + return esac ;; resource|*) - COMPREPLY=( $( compgen -W '--help --version --debug --verbose' \ - -- "$cur" ) ) - return 0 + _puppet_subcmd_opts "$1" $subcommand + return ;; esac } && complete -F _puppet puppetmasterd puppetd puppetca ralsh puppetrun puppetqd filebucket puppetdoc puppet -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |