summaryrefslogtreecommitdiff
path: root/dev-ruby/rake/files/rake.bash-completion
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ruby/rake/files/rake.bash-completion')
-rw-r--r--dev-ruby/rake/files/rake.bash-completion54
1 files changed, 54 insertions, 0 deletions
diff --git a/dev-ruby/rake/files/rake.bash-completion b/dev-ruby/rake/files/rake.bash-completion
new file mode 100644
index 000000000000..dbdfbd02c410
--- /dev/null
+++ b/dev-ruby/rake/files/rake.bash-completion
@@ -0,0 +1,54 @@
+_rake()
+{
+ local cur prev rakef i
+
+ COMPREPLY=()
+ cur=${COMP_WORDS[COMP_CWORD]}
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+ rakef="Rakefile"
+
+ if [[ "$prev" == "-f" ]]; then
+ _filedir
+ return 0
+ fi
+
+ if [[ "$cur" == *=* ]]; then
+ prev=${cur/=*/}
+ cur=${cur/*=/}
+ if [[ "$prev" == "--rakefile=" ]]; then
+ _filedir -o nospace
+ return 0
+ fi
+ fi
+
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W '-n -H -I -N -P -q -f\
+ -r -s -T -t -h -v -V\
+ --dry-run --help '--libdir=' --nosearch --prereqs --quiet\
+ '--rakefile=' '--require=' --silent --tasks --trace --usage\
+ --verbose --version'\
+ -- $cur ))
+ else
+
+ for (( i=0; i < ${#COMP_WORDS[@]}; i++)); do
+ case "${COMP_WORDS[i]}" in
+ -f)
+ eval rakef=${COMP_WORDS[i+1]}
+ break
+ ;;
+ --rakefile=*|--rakefile\=*)
+ eval rakef=${COMP_WORDS[i]/*=/}
+ break
+ ;;
+ esac
+ done
+
+ [ ! -f $rakef ] && return 0
+
+ COMPREPLY=( $( rake -s -f "$rakef" -T | \
+ awk -F ' ' '/^rake / { print $2 }' | \
+ command grep "^$cur" ))
+
+ fi
+} &&
+complete -F _rake $filenames rake