blob: 139ab9d7e3f29d9b7e365bee2df9efe6f115d863 [file] [log] [blame] [raw]
# Copyright 2015-2023 Rivoreo
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
_complete_chflags() {
local cur prev words cword split w end_of_options
# Requires a version of bash_completion that providing
# _init_completion function, which properly handles redirections;
# otherwise modifying the completion behavior may break completions
# of redirection and make things worse.
if ! _init_completion > /dev/null 2>&1; then
complete -r chflags
unset _complete_chflags
return
fi
if [ "${cur#-}" != "$cur" ]; then
local options="-f -h -v -R"
for w in "${words[@]}"; do case "$w" in
--)
end_of_options=1
break
;;
-R*|-[fhvHLP]*R*)
case "$options" in
*" -P")
;;
*)
options="$options -H -L -P"
;;
esac
;;
esac done
if [ -z "$end_of_options" ]; then
COMPREPLY=(`compgen -W "$options" -- "$cur"`)
return
fi
fi
local nargs=1
end_of_options=
for w in "${words[@]:1:cword-1}"; do
case "$w" in
--)
end_of_options=1
continue
;;
-*)
[ -z "$end_of_options" ] && continue;
;;
esac
nargs=$((nargs+1))
done
if [ $nargs = 1 ]; then
COMPREPLY=(`compgen -W 'simmutable nosimmutable sappend nosappend' -- "$cur"`)
else
_filedir
fi
}
complete -F _complete_chflags chflags