332 lines
7.2 KiB
Bash
332 lines
7.2 KiB
Bash
# bash completion for samba
|
|
|
|
have smbclient || return
|
|
|
|
_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
|
|
|
|
# Local variables:
|
|
# mode: shell-script
|
|
# sh-basic-offset: 4
|
|
# sh-indent-comment: t
|
|
# indent-tabs-mode: nil
|
|
# End:
|
|
# ex: ts=4 sw=4 et filetype=sh
|