updated bash_completion

This commit is contained in:
Mikhail Tergoev
2025-06-26 13:09:22 +03:00
parent 973ae4c61a
commit 206e6f5467

View File

@ -4,41 +4,39 @@ _winehelper_completions() {
COMPREPLY=() COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}" cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}" prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="--help --version --debug install installed run -r -i remove-all --clear-pfx remove-prefix backup-prefix restore-prefix winecfg winereg winefile wineconsole winetricks killall desktop regedit explorer cmd" opts="--help --version --debug install installed -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix"
wine_cmd="winecfg winereg winefile wineconsole winetricks desktop regedit explorer cmd run"
case "${prev}" in case "${prev}" in
winehelper)
COMPREPLY=( $(compgen -W "${opts} ${wine_cmd}" -- "${cur}") )
return 0
;;
--debug)
COMPREPLY=( $(compgen -W "${wine_cmd}" -- "${cur}") )
return 0
;;
install|-i) install|-i)
if [[ "${COMP_WORDS[COMP_CWORD-2]}" == "install" && "$cur" == "" ]]; then local scripts="$(ls -1 /usr/share/winehelper/autoinstall) $(ls -1 /usr/share/winehelper/manualinstall)"
COMPREPLY=( $(compgen -W "list" -- "${cur}") ) COMPREPLY=( $(compgen -W "list ${scripts}" -- "${cur}") )
else
local scripts=$(ls /usr/share/winehelper/autoinstall /usr/share/winehelper/manualinstall 2>/dev/null | grep -v '^list$')
COMPREPLY=( $(compgen -W "${scripts}" -- "${cur}") )
fi
return 0 return 0
;; ;;
list) run|installed)
COMPREPLY=() local installed=$(grep -h "Exec=env" ~/.local/share/winehelper/*.desktop 2>/dev/null | awk -F'/' '{print $NF}' | awk -F'"' '{print $1}')
return 0
;;
run)
local installed=$(grep -h "Exec=env" ~/.local/share/applications/WineHelper/*.desktop 2>/dev/null | awk -F'"' '{print $4}' | xargs -n1 basename)
COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") )
return 0 return 0
;; ;;
remove-prefix|backup-prefix) remove-prefix|backup-prefix)
local prefixes=$(ls ~/.local/share/winehelper/prefixes 2>/dev/null) local prefixes=$(ls -1 ~/.local/share/winehelper/prefixes 2>/dev/null)
COMPREPLY=( $(compgen -W "${prefixes}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${prefixes}" -- "${cur}") )
return 0 return 0
;; ;;
restore-prefix) restore-prefix)
COMPREPLY=( $(compgen -f -X '!*.whpack' -- "${cur}") )
return 0 return 0
;; ;;
*) *)
;; ;;
esac esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
} }
complete -F _winehelper_completions winehelper complete -F _winehelper_completions winehelper