1
0
Fork 0

re-added script to build completions

This commit is contained in:
jsteemann 2016-05-18 09:04:00 +02:00
parent 4c7bd80c3c
commit 24aba31367
1 changed files with 60 additions and 0 deletions

60
scripts/buildCompletionsBash.sh Executable file
View File

@ -0,0 +1,60 @@
#!/bin/bash
if [[ "$1" == "" ]]; then
echo "usage $0 outfile"
exit 1
fi
out="$1"
if [ ! -d "build/bin" ]; then
echo "expecting directory build/bin to be present"
exit 1
fi
rm -f /tmp/completions-template
cat << 'EOF' > /tmp/completions-template
_PROGNAME()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="PROGOPTS"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -o default -F _PROGNAME PROGNAME
EOF
echo "" > $out
progs="arangobench arangosh arangoimp arangodump arangorestore arangod"
for progname in $progs
do
# find the executable
# check if the executable exists
if [[ -f "build/bin/$progname" ]]; then
executable="build/bin/$progname"
# setup the help command string
command="--help-all"
# set up the list of completions for the executable
completions="`\"$executable\" $command | grep -o \"^\\ \\+--[a-z-]\\+\\(\\.[a-z0-9-]\\+\\)\\?\" | xargs`"
sed -e "s/PROGNAME/$progname/g" -e "s/PROGOPTS/$completions/g" /tmp/completions-template >> $out
fi
done
rm -f /tmp/completions-template
echo "completions stored in file $out"
echo "now copy this file to /etc/bash_completion.d/arangodb"