# Auto-completion for winhelper _winehelper_completions() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" 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" case "${prev}" in install|-i) if [[ "${COMP_WORDS[COMP_CWORD-2]}" == "install" && "$cur" == "" ]]; then COMPREPLY=( $(compgen -W "list" -- "${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 ;; list) COMPREPLY=() 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}") ) return 0 ;; remove-prefix|backup-prefix) local prefixes=$(ls ~/.local/share/winehelper/prefixes 2>/dev/null) COMPREPLY=( $(compgen -W "${prefixes}" -- "${cur}") ) return 0 ;; restore-prefix) COMPREPLY=( $(compgen -f -X '!*.whpack' -- "${cur}") ) return 0 ;; *) ;; esac COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) } complete -F _winehelper_completions winehelper