#!/usr/bin/env bash
#
# Description: Bash completion file for krackctl.
#
# Homepage: https://codeberg.org/krathalan/krack
# Copyright (C) 2020-2024 Hunter Peavey
# SPDX-License-Identifier: GPL-3.0-or-later

# Source a lot of common (between krack scripts) variables
# shellcheck disable=SC1091
source /usr/lib/krack/common

_krackctl_completions()
{
  # COMP_WORDS[0] = krackctl
  # COMP_WORDS[1] = cmd (e.g. build-all, clean-logs, etc.)
  # COMP_WORDS[2] = only used for request-build

  if [[ "${#COMP_WORDS[@]}" -lt "3" ]]; then
    mapfile -t COMPREPLY <<< "$(compgen -W "build-all clean-logs create-chroot failed-builds list-diffs review-diffs stats request-build pending-builds cancel-all-requests status watch-status version" "${COMP_WORDS[1]}")"
  elif [[ "${COMP_WORDS[1]}" == "request-build" ]] && [[ "${#COMP_WORDS[@]}" -ge "3" ]]; then
    for package in "${MASTER_BUILD_DIR}"/*; do
      # Remove preceding "$MASTER_BUILD_DIR" in completions
      all_packages+=("${package##*/}")
    done

    mapfile -t COMPREPLY <<< "$(compgen -W "${all_packages[*]}" "${COMP_WORDS[-1]}")"
  fi
}

complete -F _krackctl_completions krackctl
