]> git.phdru.name Git - dotfiles.git/commitdiff
.bashrc: Extract oft-edited completion to a separate file
authorOleg Broytman <phd@phdru.name>
Mon, 16 Oct 2023 14:17:35 +0000 (17:17 +0300)
committerOleg Broytman <phd@phdru.name>
Mon, 16 Oct 2023 14:36:40 +0000 (17:36 +0300)
.bash_completion.d/python-pip [new file with mode: 0644]
.bashrc

diff --git a/.bash_completion.d/python-pip b/.bash_completion.d/python-pip
new file mode 100644 (file)
index 0000000..57aaf06
--- /dev/null
@@ -0,0 +1,17 @@
+delegate_completion python python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 python3.9 python3.10 python3.11 python3.12
+
+if type -p pip >/dev/null 2>&1; then
+    _PIP=pip
+elif type -p pip3 >/dev/null 2>&1; then
+    _PIP=pip3
+fi
+
+if [ -n "$_PIP" ]; then
+    _pip_completion_loader() {
+        eval "`$_PIP completion --bash`"
+        complete -F _pip_completion pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11 pip3.12
+        unset _pip_completion_loader
+        return 124
+    }
+    complete -F _pip_completion_loader pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11 pip3.12
+fi
diff --git a/.bashrc b/.bashrc
index 6f5f3a8dbd2aa75c440146b74b003278b92ba49e..8797927ad530af6dbf163e195084448c5d4fb1a3 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -118,13 +118,6 @@ for cmd in unset; do
     has_completion $cmd || complete -A function -A variable $cmd
 done
 
-if [ -d "$HOME"/.bash_completion.d -a \
-        -n "`ls -A $HOME/.bash_completion.d`" ]; then
-    for _compf in "$HOME"/.bash_completion.d/*; do
-        . $_compf
-    done
-fi
-
 delegate_completion() {
     local prog programs
     prog=$1
@@ -146,11 +139,17 @@ delegate_completion() {
 
 delegate_completion make m
 delegate_completion ping p
-delegate_completion python python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 python3.9 python3.10 python3.11 python3.12
 DELEGATE_NOSPACE=1 delegate_completion rsync r rsync_cgmn rsync_cgmn_recode rsync_cgmn_recode2
 delegate_completion ssh s
 delegate_completion wget wget-m wget-wrapper ww
 
+if [ -d "$HOME"/.bash_completion.d -a \
+        -n "`ls -A $HOME/.bash_completion.d`" ]; then
+    for _compf in "$HOME"/.bash_completion.d/*; do
+        . $_compf
+    done
+fi
+
 unset _BASH_COMPLETIONS_DIR has_completion delegate_completion
 
 if [ -d "$HOME/lib/config" ]; then
@@ -163,16 +162,6 @@ if [ "`type -t short_curdir`" != function -a \
     . "$HOME"/admin/prog/bash_prompt
 fi
 
-if type -p pip >/dev/null 2>&1 || type -p pip3 >/dev/null 2>&1; then
-    _pip_completion_loader() {
-        eval "`pip completion --bash`"
-        complete -F _pip_completion pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11 pip3.12
-        unset _pip_completion_loader
-        return 124
-    }
-    complete -F _pip_completion_loader pip pip2 pip2.7 pip3 pip3.4 pip3.5 pip3.6 pip3.7 pip3.8 pip3.9 pip3.10 pip3.11 pip3.12
-fi
-
 if test -d "$HOME"/.pyenv
 then
     PYENV_ROOT="$HOME"/.pyenv