diff options
Diffstat (limited to '')
-rw-r--r-- | completions/smbclient | 322 |
1 files changed, 322 insertions, 0 deletions
diff --git a/completions/smbclient b/completions/smbclient new file mode 100644 index 0000000..cea2107 --- /dev/null +++ b/completions/smbclient @@ -0,0 +1,322 @@ +# bash completion for samba -*- shell-script -*- + +_samba_resolve_order() +{ + COMPREPLY=($(compgen -W 'lmhosts host wins bcast' -- "$cur")) +} + +_samba_domains() +{ + if [[ -n ${COMP_SAMBA_SCAN:-} ]]; then + COMPREPLY=($(compgen -W '$(smbtree -N -D)' -- "$cur")) + fi +} + +_samba_hosts() +{ + if [[ -n ${COMP_SAMBA_SCAN:-} ]]; then + COMPREPLY=($(compgen -W "$( + smbtree -N -S | + command sed -ne 's/^[[:space:]]*\\\\*\([^[:space:]]*\).*/\1/p' + )" -- "$cur")) + fi +} + +_samba_debuglevel() +{ + COMPREPLY=($(compgen -W '{0..10}' -- "$cur")) +} + +_samba_sockopts() +{ + COMPREPLY=($(compgen -W 'SO_KEEPALIVE SO_REUSEADDR SO_BROADCAST + TCP_NODELAY IPTOS_LOWDELAY IPTOS_THROUGHPUT SO_SNDBUF SO_RCVBUF + SO_SNDLOWAT SO_RCVLOWAT' -- "$cur")) +} + +_samba_signing() +{ + COMPREPLY=($(compgen -W 'on off required' -- "$cur")) +} + +_smbclient() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --name-resolve | -!(-*)R) + _samba_resolve_order + return + ;; + -!(-*)t) + COMPREPLY=($(compgen -W 'SJIS EUC JIS7 JIS8 JUNET HEX CAP' \ + -- "$cur")) + return + ;; + --configfile | --authentication-file | -!(-*)[sA]) + _filedir + return + ;; + --log-basename | --directory | -!(-*)[lD]) + _filedir -d + return + ;; + --socket-options | -!(-*)O) + _samba_sockopts + return + ;; + -!(-*)T) + COMPREPLY=($(compgen -W 'c x I X F b g q r N a' -- "$cur")) + return + ;; + --workgroup | -!(-*)W) + _samba_domains + return + ;; + --debuglevel | -!(-*)d) + _samba_debuglevel + return + ;; + --list | -!(-*)L) + _samba_hosts + return + ;; + --signing | -!(-*)S) + _samba_signing + return + ;; + --port | --message | --ip-address | --send-buffer | --user | --netbiosname | \ + --scope | --tar | --command | --max-protocol | -!(-*)[pMIbUniTcm]) + return + ;; + --help | --version | -!(-*)[?V]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _smbclient smbclient + +_smbget() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --outputfile | --rcfile | -!(-*)[of]) + _filedir + return + ;; + --debuglevel | -!(-*)d) + _samba_debuglevel + return + ;; + --workgroup | -!(-*)w) + _samba_domains + return + ;; + --username | --password | --blocksize | -!(-*)[upb]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _smbget smbget + +_smbcacls() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --configfile | --authentication-file | -!(-*)[As]) + _filedir + return + ;; + --log-basename | -!(-*)l) + _filedir -d + return + ;; + --debuglevel | -!(-*)d) + _samba_debuglevel + return + ;; + --signing) + _samba_signing + return + ;; + --socket-options | -!(-*)O) + _samba_sockopts + return + ;; + --workgroup | -!(-*)W) + _samba_domains + return + ;; + --help | --usage | --delete | --modify | --add | --set | --chown | --chgrp | \ + --netbiosname | --scope | --user | -!(-*)[?DMaSCGniU]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _smbcacls smbcacls + +_smbcquotas() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --configfile | --authentication-file | -!(-*)[sA]) + _filedir + return + ;; + --log-basename | -!(-*)l) + _filedir -d + return + ;; + --debuglevel | -!(-*)d) + _samba_debuglevel + return + ;; + --signing) + _samba_signing + return + ;; + --help | --usage | --user | --set | -!(-*)[?UuS]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _smbcquotas smbcquotas + +_smbpasswd() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -*r) + _samba_hosts + return + ;; + -*R) + _samba_resolve_order + return + ;; + -*c) + _filedir + return + ;; + -*D) + _samba_debuglevel + return + ;; + -*[Uhw]) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -h)' -- "$cur")) + fi +} && + complete -F _smbpasswd smbpasswd + +_smbtar() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -*[rt]) + _filedir tar + return + ;; + -*s) + _samba_hosts + return + ;; + -*l) + _samba_debuglevel + return + ;; + -*N) + _filedir + return + ;; + -*[pxbdu]) + return + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + fi +} && + complete -F _smbtar smbtar + +_smbtree() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --configfile | --authentication-file | -!(-*)[sA]) + _filedir + return + ;; + --log-basename | -!(-*)l) + _filedir -d + return + ;; + --debuglevel | -!(-*)d) + _samba_debuglevel + return + ;; + --signing | -!(-*)S) + _samba_signing + return + ;; + --help | --usage | --user | -!(-*)[?U]) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _smbtree smbtree + +# ex: filetype=sh |