mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
75 lines
2.2 KiB
Bash
75 lines
2.2 KiB
Bash
# xdg-mime(1) completion -*- shell-script -*-
|
|
|
|
_xdg_mime_mimetype()
|
|
{
|
|
COMPREPLY+=($(compgen -S / -W 'application audio font image message model
|
|
multipart text video' -- "$cur"))
|
|
[[ ${COMPREPLY-} == */ ]] && compopt -o nospace
|
|
}
|
|
|
|
_xdg_mime()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
local args
|
|
_count_args
|
|
|
|
if ((args == 1)); then
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '--help --manual --version' -- "$cur"))
|
|
return
|
|
fi
|
|
COMPREPLY=($(compgen -W \
|
|
'query default install uninstall' -- "$cur"))
|
|
return
|
|
fi
|
|
|
|
case ${words[1]} in
|
|
query)
|
|
if ((args == 2)); then
|
|
COMPREPLY=($(compgen -W 'filetype default' -- "$cur"))
|
|
return
|
|
fi
|
|
case ${words[2]} in # TODO and args == 3 (takes only one arg!)
|
|
filetype) _filedir ;;
|
|
default) _xdg_mime_mimetype ;;
|
|
esac
|
|
;;
|
|
default)
|
|
if ((args == 2)); then
|
|
local IFS=$' \t\n' reset=$(shopt -p nullglob)
|
|
shopt -s nullglob
|
|
local -a desktops=(/usr/share/applications/*.desktop)
|
|
desktops=("${desktops[@]##*/}")
|
|
$reset
|
|
IFS=$'\n'
|
|
COMPREPLY=($(compgen -W '${desktops[@]}' -- "$cur"))
|
|
else
|
|
_xdg_mime_mimetype
|
|
fi
|
|
;;
|
|
install)
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '--mode --novendor' -- "$cur"))
|
|
elif [[ $prev == --mode ]]; then
|
|
COMPREPLY=($(compgen -W 'user system' -- "$cur"))
|
|
else
|
|
_filedir xml
|
|
fi
|
|
;;
|
|
uninstall)
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '--mode' -- "$cur"))
|
|
elif [[ $prev == --mode ]]; then
|
|
COMPREPLY=($(compgen -W 'user system' -- "$cur"))
|
|
else
|
|
_filedir xml
|
|
fi
|
|
;;
|
|
esac
|
|
} &&
|
|
complete -F _xdg_mime xdg-mime
|
|
|
|
# ex: filetype=sh
|