From: Oleg Broytman Date: Wed, 28 Mar 2018 17:51:54 +0000 (+0300) Subject: .shellrc: Refactor `has_completion` X-Git-Url: https://git.phdru.name/?p=dotfiles.git;a=commitdiff_plain;h=59e5881d91c20244b189a8899a02cd01bc127af3 .shellrc: Refactor `has_completion` --- diff --git a/.shellrc b/.shellrc index 7fd9393..b4b4e05 100644 --- a/.shellrc +++ b/.shellrc @@ -71,37 +71,33 @@ if test -n "$BASH_VERSION"; then functions() { typeset -f "$@"; } j() { jobs; } + has_completion() { return 0; } if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then if [ "$SHELL" = /bin/bash ]; then - if [ -f /etc/bash_completion ]; then + if [ -d /usr/share/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + has_completion() { [ -r /usr/share/bash-completion/completions/$1 ]; } + elif [ -f /etc/bash_completion ]; then . /etc/bash_completion + has_completion() { [ -r /etc/bash_completion.d/$1 ]; } elif [ -d /etc/bash_completion.d ]; then for _compf in /etc/bash_completion.d/*; do . $_compf done + has_completion() { [ -r /etc/bash_completion.d/$1 ]; } fi elif [ "$SHELL" = /usr/local/bin/bash ]; then if [ -d /usr/local/etc/bash_completion.d ]; then for _compf in /usr/local/etc/bash_completion.d/*; do . $_compf done + has_completion() { [ -r /usr/local/etc/bash_completion.d/$1 ]; } fi else echo "Unknown OS type, cannot source bash_completion" >&2 fi fi - has_completion() { return 0; } - if [ "$SHELL" = /bin/bash ]; then - if [ -d /etc/bash_completion.d -o -d /usr/share/bash-completion/completions ]; then - has_completion() { [ -r /etc/bash_completion.d/$1 -o -r /usr/share/bash-completion/completions/$1 ]; } - fi - elif [ "$SHELL" = /usr/local/bin/bash ]; then - if [ -d /usr/local/etc/bash_completion.d ]; then - has_completion() { [ -r /usr/local/etc/bash_completion.d/$1 ]; } - fi - fi - for cmd in builtin cgmem_nice command dbus-launch exec \ killall man nice nohup pidof pidOf KillAll pgrep pkill psg pswg su sudo \ time whence whereis which xargs; do