Colours for PS2 and PS4.
[profile.git] / .profile.d / completion.bashrc
index fa86e5e..8ff324d 100644 (file)
@@ -1,9 +1,11 @@
-# $Id$
+# Old bash doesn't have completion support.
+if ! builtin complete 2>&1 | grep 'not a shell builtin' >/dev/null; then
+
 # Helper!
-export COMPLETION_DIR_SSH=~/.ssh/hosts
-export COMPLETION_DIR_TELNET=~/.telnet/hosts
-export COMPLETION_DIR_RDP=~/.ssh/hosts
-export COMPLETION_DIR_PING="$COMPLETION_DIR_SSH $COMPLETION_DIR_TELNET $COMPLETION_DIR_RDP"
+COMPLETION_DIR_SSH=${PROFILE_HOME:-~}/.ssh/hosts
+COMPLETION_DIR_TELNET=${PROFILE_HOME:-~}/.telnet/hosts
+COMPLETION_DIR_RDP=${PROFILE_HOME:-~}/.rdp/hosts
+COMPLETION_DIR_PING="$COMPLETION_DIR_SSH $COMPLETION_DIR_TELNET $COMPLETION_DIR_RDP"
 
 function _generic_completion() {
   COMPLETION_DIR=${1+"$@"}
@@ -103,6 +105,15 @@ function _rmmod() {
   return 0
 }
 
+# Find tags with GNU GLOBAL.
+function _global() {
+  COMPREPLY=()
+  cur=${COMP_WORDS[COMP_CWORD]}
+
+  COMPREPLY=($(global -c "$cur"))
+  return 0
+}
+
 complete -F _ssh rollout
 complete -F _ssh ssh
 complete -F _ssh sshterm
@@ -120,8 +131,6 @@ complete -F _known_hosts kill_known_host
 complete -F _known_hosts knh
 complete -F _modprobe modprobe
 complete -F _rmmod rmmod
+complete -F _global global
 
-unset COMPLETION_DIR_PING
-unset COMPLETION_DIR_RDP
-unset COMPLETION_DIR_SSH
-unset COMPLETION_DIR_TELNET
+fi