# bash completion for samba -*- shell-script -*- proc _samba_resolve_order { setvar COMPREPLY = ''( $( compgen -W 'lmhosts host wins bcast' -- "$cur" ) ) } proc _samba_domains { if [[ -n ${COMP_SAMBA_SCAN:-} ]] { setvar COMPREPLY = ''( $( compgen -W '$( smbtree -N -D )' -- "$cur" ) ) } } proc _samba_hosts { if [[ -n ${COMP_SAMBA_SCAN:-} ]] { setvar COMPREPLY = ''( $( compgen -W "$( smbtree -N -S | \ sed -ne 's/^[[:space:]]*\\\\*\([^[:space:]]*\).*/\1/p' \ )" -- "$cur" ) ) } } proc _samba_debuglevel { setvar COMPREPLY = ''( $( compgen -W '{0..10}' -- "$cur" ) ) } proc _samba_sockopts { setvar COMPREPLY = ''( $( compgen -W 'SO_KEEPALIVE SO_REUSEADDR SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY IPTOS_THROUGHPUT SO_SNDBUF SO_RCVBUF SO_SNDLOWAT SO_RCVLOWAT' -- "$cur" ) ) } proc _samba_signing { setvar COMPREPLY = ''( $( compgen -W 'on off required' -- "$cur" ) ) } proc _smbclient { local cur prev words cword split _init_completion -s || return case (prev) { -R|--name-resolve { _samba_resolve_order return 0 } -t { setvar 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 { setvar 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 } } $split && return 0 if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } } && complete -F _smbclient smbclient proc _smbget { local cur prev words cword split _init_completion -s || return case (prev) { -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 } } $split && return 0 if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } } && complete -F _smbget smbget proc _smbcacls { local cur prev words cword split _init_completion -s || return case (prev) { -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 } } $split && return 0 if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } } && complete -F _smbcacls smbcacls proc _smbcquotas { local cur prev words cword split _init_completion -s || return case (prev) { -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 } } $split && return 0 if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } } && complete -F _smbcquotas smbcquotas proc _smbpasswd { local cur prev words cword _init_completion || return case (prev) { -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 } } if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) ) } } && complete -F _smbpasswd smbpasswd proc _smbtar { local cur prev words cword _init_completion || return case (prev) { -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 } } if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) } } && complete -F _smbtar smbtar proc _smbtree { local cur prev words cword split _init_completion -s || return case (prev) { -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 } } $split && return 0 if [[ "$cur" == -* ]] { setvar COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } } && complete -F _smbtree smbtree # ex: ts=4 sw=4 et filetype=sh