74 lines
2.3 KiB
Plaintext
74 lines
2.3 KiB
Plaintext
_lsd() {
|
|
local i cur prev opts cmds
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
cmd=""
|
|
opts=""
|
|
|
|
for i in ${COMP_WORDS[@]}
|
|
do
|
|
case "${i}" in
|
|
lsd)
|
|
cmd="lsd"
|
|
;;
|
|
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case "${cmd}" in
|
|
lsd)
|
|
opts=" -a -A -F -l -1 -R -h -d -t -S -r -V --all --almost-all --classify --long --oneline --recursive --human-readable --tree --directory-only --total-size --timesort --sizesort --reverse --classic --no-symlink --help --version --color --icon --icon-theme --depth --size --date --group-dirs --blocks <FILE>... "
|
|
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
case "${prev}" in
|
|
|
|
--color)
|
|
COMPREPLY=($(compgen -W "always auto never" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--icon)
|
|
COMPREPLY=($(compgen -W "always auto never" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--icon-theme)
|
|
COMPREPLY=($(compgen -W "fancy unicode" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--depth)
|
|
COMPREPLY=($(compgen -f ${cur}))
|
|
return 0
|
|
;;
|
|
--size)
|
|
COMPREPLY=($(compgen -W "default short bytes" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--date)
|
|
COMPREPLY=($(compgen -W "date relative" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--group-dirs)
|
|
COMPREPLY=($(compgen -W "none first last" -- ${cur}))
|
|
return 0
|
|
;;
|
|
--blocks)
|
|
COMPREPLY=($(compgen -W "permission user group size date name" -- ${cur}))
|
|
return 0
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
;;
|
|
|
|
esac
|
|
}
|
|
|
|
complete -F _lsd -o bashdefault -o default lsd
|