57 lines
2.3 KiB
Plaintext
57 lines
2.3 KiB
Plaintext
# Auto-completion for winehelper
|
|
_winehelper_completions() {
|
|
local cur prev opts
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
opts="--help --version --debug install installed install-dxvk install-vkd3d -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix create-prefix --changelog changelog change-wine"
|
|
wine_cmd="winecfg winereg winefile wineconsole winetricks desktop regedit explorer cmd run"
|
|
|
|
case "${prev}" in
|
|
winehelper)
|
|
COMPREPLY=( $(compgen -W "${opts} ${wine_cmd}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
--debug)
|
|
COMPREPLY=( $(compgen -W "${wine_cmd}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
install|-i)
|
|
local scripts="$(ls -1 /usr/share/winehelper/autoinstall) $(ls -1 /usr/share/winehelper/manualinstall)"
|
|
COMPREPLY=( $(compgen -W "list ${scripts}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
run|installed)
|
|
local installed=$(ls -1 ~/.local/share/winehelper/ | grep ".desktop" | sed 's/.desktop//')
|
|
COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
remove-prefix|backup-prefix)
|
|
local prefixes=$(ls -1 ~/.local/share/winehelper/prefixes 2>/dev/null)
|
|
COMPREPLY=( $(compgen -W "${prefixes}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
restore-prefix)
|
|
return 0
|
|
;;
|
|
install-dxvk|install-vkd3d)
|
|
local versions=$(winehelper "${prev}" list 2>/dev/null | grep ' - ' | sed 's/ - //')
|
|
COMPREPLY=( $(compgen -W "${versions} none list" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
change-wine)
|
|
local wine_versions=$(awk '
|
|
/^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/ { in_group=1 }
|
|
/^#+/ { if (! ($0 ~ /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/)) in_group=0 }
|
|
/^[a-f0-9]{64}/ && in_group { sub(/\.tar\.xz$/, "", $2); print $2 }
|
|
' /usr/share/winehelper/sha256sum.list 2>/dev/null)
|
|
COMPREPLY=( $(compgen -W "system ${wine_versions}" -- "${cur}") )
|
|
return 0
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
complete -F _winehelper_completions winehelper
|