summaryrefslogtreecommitdiff
path: root/completions/puppet
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabriel@inconstante.eti.br>2017-09-25 23:46:54 -0300
committerGabriel F. T. Gomes <gabriel@inconstante.eti.br>2017-09-25 23:46:54 -0300
commit6d88f1055806932d9291f96847d2b691cccda2cd (patch)
tree0ff79eedaa8a239331256048981deedbd0721965 /completions/puppet
parent059a87a5936cfebfd2d71ab8057002cafb2ea051 (diff)
downloadbash-completion-6d88f1055806932d9291f96847d2b691cccda2cd.tar.gz
New upstream version 2.7upstream/2.7
Diffstat (limited to 'completions/puppet')
-rw-r--r--completions/puppet257
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