_sboconfig() {
  local i cur prev opts cmd
  COMPREPLY=()
  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="sboconfig"
        ;;
      *)
        ;;
    esac
  done

  case "${cmd}" in
    sboconfig)
      opts="-h -v -l -n -B -b -C -c -D -d -e -g -j -K -L -P -p -s -O -o -V -r -R -S -w -X --help --version --list --non-default --reset --branch --build-ignore --classic --cpan-ignore --noclean --color --dialogrc --distclean --etc-profile --gpg-verify --jobs --log-dir --nowrap --obsolete-check --pkg-dir --sbo-home --local-overrides --slackware-version --repo --rsync --strict-upgrades --so-check"
      if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
        COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
        return 0
      fi

      case "${prev}" in
        -h|--help|-v|--version|-l|--list|-n|--non-default|-B|--branch|--reset)
          return 0
          ;;
        -B|--branch|-j|--jobs|-V|--slackware-version|-r|--repo)
          COMPREPLY=( $(compgen -W "FALSE" -- "${cur}") )
          return 0
          ;;
        -b|--build-ignore|-C|--classic|-c|--clean|-d|--distclean|-e|--etc-profile|-g|--gpg-verify|-K|--nocolor|-R|--rsync|-S|--strict-upgrades|-P|--cpan-ignore|-O|--obsolete-check|-w|--nowrap|-X|--so-check)
          COMPREPLY=( $(compgen -W "FALSE TRUE" -- "${cur}") )
          return 0
          ;;
        -p|--pkg-dir|-o|--local-overrides|-L|--log-dir|-D|--dialogrc)
          COMPREPLY=( $(compgen -d -W "FALSE" -- "${cur}") )
          return 0
          ;;
        -s|--sbo-home)
          COMPREPLY=( $(compgen -d -- "${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 _sboconfig -o nosort -o bashdefault -o default sboconfig
else
    complete -F _sboconfig -o bashdefault -o default sboconfig
fi
