# 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 | \ 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 -R|--name-resolve) _samba_resolve_order return 0 ;; -t) COMPREPLY=( $( compgen -W 'SJIS EUC JIS7 JIS8 JUNET HEX CAP' \ -- "$cur" ) ) return 0 ;; -s|--configfile|-A|--authentication-file) _filedir return 0 ;; -l|--log-basename|-D|--directory) _filedir -d return 0 ;; -O|--socket-options) _samba_sockopts return 0 ;; -T) COMPREPLY=( $( compgen -W 'c x I X F b g q r N a' -- "$cur" ) ) return 0 ;; -W|--workgroup) _samba_domains return 0 ;; -d|--debuglevel) _samba_debuglevel return 0 ;; -L|--list) _samba_hosts return 0 ;; -S|--signing) _samba_signing return 0 ;; -p|--port|-M|--message|-I|--ip-address|-b|--send-buffer|-U|--user|-n|\ --netbiosname|-i|--scope|-T|--tar|-c|--command|-m|--max-protocol) # argument required but no completions available return 0 ;; -\?|--help|-V|--version) # all other arguments are noop with these return 0 ;; esac $split && return 0 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 -o|--outputfile|-f|--rcfile) _filedir return 0 ;; -d|--debuglevel) _samba_debuglevel return 0 ;; -w|--workgroup) _samba_domains return 0 ;; -u|--username|-p|--password|-b|--blocksize) return 0 ;; esac $split && return 0 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 -s|--configfile|-A|--authentication-file) _filedir return 0 ;; -l|--log-basename) _filedir -d return 0 ;; -d|--debuglevel) _samba_debuglevel return 0 ;; --signing) _samba_signing return 0 ;; -O|--socket-options) _samba_sockopts return 0 ;; -W|--workgroup) _samba_domains return 0 ;; -\?|--help|--usage|-D|--delete|-M|--modify|-a|--add|-S|--set|-C|\ --chown|-G|--chgrp|-n|--netbiosname|-i|--scope|-U|--user) return 0 ;; esac $split && return 0 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 -s|--configfile|-A|--authentication-file) _filedir return 0 ;; -l|--log-basename) _filedir -d return 0 ;; -d|--debuglevel) _samba_debuglevel return 0 ;; --signing) _samba_signing return 0 ;; -\?|--help|--usage|-U|-u|--user|-S|--set) return 0 ;; esac $split && return 0 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 0 ;; -R) _samba_resolve_order return 0 ;; -c) _filedir return 0 ;; -D) _samba_debuglevel return 0 ;; -U|-h|-w) return 0 ;; 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 -r|-t) _filedir tar return 0 ;; -s) _samba_hosts return 0 ;; -l) _samba_debuglevel return 0 ;; -N) _filedir return 0 ;; -p|-x|-b|-d|-u) return 0 ;; 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 -s|--configfile|-A|--authentication-file) _filedir return 0 ;; -l|--log-basename) _filedir -d return 0 ;; -d|--debuglevel) _samba_debuglevel return 0 ;; -S|--signing) _samba_signing return 0 ;; -\?|--help|--usage|-U|--user) return 0 ;; esac $split && return 0 if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace fi } && complete -F _smbtree smbtree # ex: ts=4 sw=4 et filetype=sh