_paver_does_target_list_need_generating () {
  [ ! -f .paver_targets ] && return 0
  [ pavement.py -nt .paver_targets ] && return 0
  return 1
}

_paver () {
  if [ -f pavement.py ]; then
    if _paver_does_target_list_need_generating; then
      paver --help 2>&1 |grep '-'|grep -v -e '--'|awk -F '-' '{print $1}'|tr -d ' ' > .paver_targets
    fi
    compadd `cat .paver_targets`
  fi
}

compdef _paver paver