[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 8e496adff30d29b7c240dfc90860eca8b6970ae7

Guillaume Rousse guillaume at oberkampf.msr-inria.inria.fr
Mon Sep 14 20:58:12 UTC 2009


The following commit has been merged in the master branch:
commit 8e496adff30d29b7c240dfc90860eca8b6970ae7
Author: Guillaume Rousse <guillaume at oberkampf.msr-inria.inria.fr>
Date:   Mon Sep 14 23:01:19 2009 +0200

    initial import

diff --git a/install-completions b/install-completions
new file mode 100755
index 0000000..0a1a4ec
--- /dev/null
+++ b/install-completions
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+while getopts ":di" flag; do
+    case $flag in
+	d) debug=1;;
+	i) install=1;;
+    esac
+done
+
+shift $((OPTIND - 1))
+
+if [ $# -ne 2 ]; then
+    echo "usage: $0 <completion_dir> <installation_dir>"
+    exit 1
+fi
+
+completion_dir=$1
+if [ ! -d $completion_dir ]; then
+    echo "invalid directory $completion_dir"
+    exit 1
+fi
+
+installation_dir=$2
+if [ ! -d $installation_dir ]; then
+    echo "invalid directory $installation_dir"
+    exit 1
+fi
+
+have()
+{
+	PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null
+}
+
+# many scripts requires this
+shopt -s extglob
+
+for script in $completion_dir/*; do
+    # reset completion
+    complete -r
+
+    # source script
+    source $script 2>/dev/null
+
+    # check completion output
+    output=$(complete -p)
+    if [ -n "$output" ]; then
+	if [ -n "$install" ]; then
+	    ln -sf $script $installation_dir/$(basename $script)
+	else
+	    echo "$script OK"
+	fi
+    fi
+
+    if [ -n "$debug" ]; then
+        echo $output
+    fi
+done

-- 
bash-completion



More information about the Bash-completion-commits mailing list