diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:24:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:24:27 +0000 |
commit | 6c18848a903eb3ee06dccd915859ce64195c257c (patch) | |
tree | ea0fe36eb5e6f40e0a1f765d44c4b0c0b2bfb089 /completions/chown | |
parent | Initial commit. (diff) | |
download | bash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.tar.xz bash-completion-6c18848a903eb3ee06dccd915859ce64195c257c.zip |
Adding upstream version 1:2.11.upstream/1%2.11
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'completions/chown')
-rw-r--r-- | completions/chown | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/completions/chown b/completions/chown new file mode 100644 index 0000000..1d746b7 --- /dev/null +++ b/completions/chown @@ -0,0 +1,46 @@ +# chown(1) completion -*- shell-script -*- + +_chown() +{ + local cur prev words cword split + # Don't treat user:group as separate words. + _init_completion -s -n : || return + + case "$prev" in + --from) + _usergroup + return + ;; + --reference) + _filedir + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + # Complete -options + local w opts + for w in "${words[@]}"; do + [[ $w == -@(R|-recursive) ]] && opts="-H -L -P" && break + done + COMPREPLY=($(compgen -W '-c -h -f -R -v --changes --dereference + --no-dereference --from --silent --quiet --reference --recursive + --verbose --help --version $opts' -- "$cur")) + else + local args + + # The first argument is an usergroup; the rest are filedir. + _count_args : + + if ((args == 1)); then + _usergroup -u + else + _filedir + fi + fi +} && + complete -F _chown chown + +# ex: filetype=sh |