_sbohints() {
  local i cur prev opts cmd
  COMPREPLY=()
  SBO_HOME="$(sboconfig --list | awk -F= '/SBO_HOME=/{print $2}')/repo"
  REPOLIST="$(awk '/NAME/{print $3}' $SBO_HOME/SLACKBUILDS.TXT | tr \\n ' ')"
  cur="${COMP_WORDS[COMP_CWORD]}"
  prev="${COMP_WORDS[COMP_CWORD-1]}"
  cmd=""
  opts=""

  for i in ${COMP_WORDS[@]} ; do
    case "${cmd},${i}" in
      ",$1")
        cmd="sbohints"
        ;;
      *)
        ;;
    esac
  done

  case "${cmd}" in
    sbohints)
      opts="-h -v --help --version --color --nocolor --wrap --nowrap -b -c -o -O -l -q -r --blacklist --optional --replace-optional --clear --list --query --reverse --reset $REPOLIST"
      if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
        COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
        return 0
      fi

      case "${prev}" in
        -h|--help|-v|--version|-l|--list|--reset)
          return 0
          ;;
        -b|--blacklist|-o|--optional|-O|--replace-optional|-c|--clear|-q|--query|-r|--reverse)
          COMPREPLY=( $(compgen -W "$REPOLIST" -- "${cur}") )
          return 0
          ;;
        *)
          return 0
          ;;
      esac
      ;;
    *)
      return 0
    ;;
  esac
}

if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
    complete -F _sbohints -o nosort -o bashdefault -o default sbohints
else
    complete -F _sbohints -o bashdefault -o default sbohints
fi
