File Manager
_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
_get_comp_words_by_ref -n : cur
more_recent=`ls -1t .rake_tasks~ $rakef */*.rake */*/*.rake 2>/dev/null | head -n 1`
if [ "$more_recent" != ".rake_tasks~" ]; then
rake -T | awk '{print($2)}' > .rake_tasks~
fi
tasks=$(cat .rake_tasks~)
COMPREPLY=($(compgen -W "$tasks" -- "$cur"))
__ltrim_colon_completions "$cur"
fi
}
complete -F _rake rake
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com