#!/bin/bash

_burp() {
  local cur prev opts categories ng

  _get_comp_words_by_ref cur prev

  # Valid upload categories
  categories="daemons devel editors emulators fonts games gnome i18n kde
              kernels lib modules multimedia network office science system
              x11 xfce"

  # Valid longopts
  opts="-u --user -p --password -c --category -k --keep-cookies -C --cookies -v --verbose"

  # nullglob avoids problems when no results are found
  shopt -q nullglob || { shopt -s nullglob; ng=1; }

  if [[ $cur == -* ]]; then
    COMPREPLY=( $(compgen -W "$opts" -- $cur ) )
  else
    case "$prev" in
      # complete normally
      "-C"|"--cookies") 
        COMPREPLY=( $(compgen -f -- $cur) ) ;;

      "-c"|"--category") COMPREPLY=($(compgen -W "$categories" -- $cur)) ;;

      # don't complete anything
      "-u"|"--user"|"-p"|"--password") ;;

      # else, complete *.src.tar.gz files
      *) COMPREPLY=($(compgen -f -X '!*.src.tar.gz' -- $cur)) ;;
    esac
  fi

  # restore nullglob setting
  [[ $ng ]] && shopt -u nullglob

}

complete -o plusdirs -F _burp burp
