#compdef cap
#autoload

function _cap-does-task-list-need-generating() {
  if [[ ! -f .cap_tasks~ ]]; then return 0;
  else
    accurate=$(stat -f%m .cap_tasks~)
    changed=$(stat -f%m config/deploy.rb)
    return $(expr $accurate '>=' $changed)
  fi
}

if [[ -f config/deploy.rb ]]; then
  if _cap-does-task-list-need-generating; then
    echo "\nGenerating .cap_tasks~..." > /dev/stderr
    cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~
  fi
  compadd $(cat .cap_tasks~)
fi