aboutsummaryrefslogtreecommitdiff
path: root/bash/bash_completion.d/vis.bash
diff options
context:
space:
mode:
Diffstat (limited to 'bash/bash_completion.d/vis.bash')
-rw-r--r--bash/bash_completion.d/vis.bash22
1 files changed, 22 insertions, 0 deletions
diff --git a/bash/bash_completion.d/vis.bash b/bash/bash_completion.d/vis.bash
new file mode 100644
index 00000000..f84cb702
--- /dev/null
+++ b/bash/bash_completion.d/vis.bash
@@ -0,0 +1,22 @@
+# Complete args to vis(1) with existing executables in $VISPATH, defaulting to
+# ~/.local/bin
+_vis() {
+ local vispath
+ vispath=${VISPATH:-"$HOME"/.local/bin}
+ [[ -d $vispath ]] || return
+ while IFS= read -rd '' executable ; do
+ COMPREPLY[${#COMPREPLY[@]}]=$executable
+ done < <(
+ shopt -s dotglob nullglob
+ declare -a files
+ files=("${VISPATH:-"$HOME"/.local/bin}"/"${COMP_WORDS[COMP_CWORD]}"*)
+ declare -a executables
+ for file in "${files[@]}" ; do
+ [[ -f $file && -x $file ]] || continue
+ executables[${#executables[@]}]=${file##*/}
+ done
+ ((${#executables[@]})) || exit 1
+ printf '%q\0' "${executables[@]}"
+ )
+}
+complete -F _vis vis