# usermod(8) completion -*- shell-script -*- proc _usermod { local cur prev words cword split _init_completion -s || return # TODO: if -o/--non-unique is given, could complete on existing uids # with -u/--uid match $prev { with -c|--comment|-d|--home|-e|--expiredate|-f|--inactive|-h|--help|\ -l|--login|-p|--password|-u|--uid|-Z|--selinux-user return 0 with -g|--gid _gids setglobal COMPREPLY = ''( $( compgen -W '${COMPREPLY[@]} $( compgen -g )' \ -- "$cur" ) ) return 0 with -G|--groups local prefix=; [[ $cur == *,* ]] && setglobal prefix = ""$(cur%,*),"" setglobal COMPREPLY = ''( $( compgen -P "$prefix" -g -- "${cur##*,}" ) ) return 0 with -R|--root _filedir -d return 0 with -s|--shell _shells return 0 } $split && return 0 if [[ "$cur" == -* ]] { # TODO: -U/--unlock, -p/--password, -L/--lock mutually exclusive setglobal COMPREPLY = ''( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) return 0 } setglobal COMPREPLY = ''( $( compgen -u -- "$cur" ) ) } && complete -F _usermod usermod # ex: ts=4 sw=4 et filetype=sh