Blame | Last modification | View Log | RSS feed
# Completions for various core utilities# chown(1) completion#have chown &&_chown(){local cur prev split=false# Get cur and prev words; but don't treat user:group as separate words._get_comp_words_by_ref -n : cur prev_split_longopt && split=truecase "$prev" in--from)_usergroupreturn 0;;--reference)_filedirreturn 0;;esac$split && return 0if [[ "$cur" == -* ]]; then# Complete -optionslocal w optsfor w in "${COMP_WORDS[@]}" ; do[[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && breakdoneCOMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \--no-dereference --from --silent --quiet --reference --recursive \--verbose --help --version $opts' -- "$cur" ) )elselocal args# The first argument is an usergroup; the rest are filedir._count_args :if [[ $args == 1 ]]; then_usergroup -uelse_filedirfifi} &&complete -F _chown chown# chgrp(1) completion#have chgrp &&_chgrp(){local cur prev split=falseCOMPREPLY=()_get_comp_words_by_ref cur prevcur=${cur//\\\\/}_split_longopt && split=trueif [[ "$prev" == --reference ]]; then_filedirreturn 0fi$split && return 0# options completionif [[ "$cur" == -* ]]; thenlocal w optsfor w in "${COMP_WORDS[@]}" ; do[[ "$w" == -@(R|-recursive) ]] && opts="-H -L -P" && breakdoneCOMPREPLY=( $( compgen -W '-c -h -f -R -v --changes --dereference \--no-dereference --silent --quiet --reference --recursive \--verbose --help --version $opts' -- "$cur" ) )return 0fi# first parameter on line or first since an option?if [[ $COMP_CWORD -eq 1 && "$cur" != -* || "$prev" == -* ]]; then_allowed_groupselse_filedir || return 0fireturn 0} &&complete -F _chgrp chgrp# id(1) completion#have id &&_id(){local curCOMPREPLY=()_get_comp_words_by_ref curif [[ "$cur" == -* ]]; thenCOMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\-r --real -u --user --help --version' -- "$cur" ) )elseCOMPREPLY=( $( compgen -u "$cur" ) )fi} &&complete -F _id id# mktemp(1) completion#have mktemp &&_mktemp(){COMPREPLY=()local cur prev split=false_get_comp_words_by_ref cur prev_split_longopt && split=truecase "$prev" in--help|--version|--suffix)return 0;;--tmpdir|-p)_filedir -dreturn 0;;esac$split && return 0[[ "$cur" == -* ]] && \COMPREPLY=( $( compgen -W '-d -u -q -p -t' -- "$cur" ) )} &&complete -F _mktemp mktemp# 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