#!/bin/sh

set -eu

usage() {
  cat <<EOF
usage: debci-list-packages [OPTIONS]

$@
EOF
}

export debci_base_dir=$(readlink -f $(dirname $(readlink -f $0))/..)
. $debci_base_dir/lib/environment.sh
. $debci_base_dir/lib/functions.sh

_process_seed_list() {
  whitelist="${debci_config_dir}/whitelist"
  seed_list="${debci_config_dir}/seed_list"

  if [ -e "${whitelist}" ]; then
    echo "W: whitelist is deprecated, rename it to seed_list instead" >&2
    seed_list="$whitelist"
  fi

  if [ -f "${seed_list}" ]; then
    if [ -x "${seed_list}" ]; then
      PATH="$debci_base_dir/lib:$PATH" "${seed_list}"
    else
      sed -e '/^#/d' "${seed_list}"
    fi | sort -u
  else
    list_packages_from_archive
  fi
}

_process_reject_list() {
  for pkg in $(_process_seed_list); do
    if ! grep -q "^\s*${pkg}\s*$" "$1"; then
      echo "$pkg"
    fi
  done
}

blacklist="${debci_config_dir}/blacklist"
reject_list="${debci_config_dir}/reject_list"
if [ -e "$blacklist" ]; then
  echo "W: blacklist is deprecated, use reject_list instead" >&2
  _process_reject_list "$blacklist"
elif [ -e "$reject_list" ]; then
  _process_reject_list "$reject_list"
else
  _process_seed_list
fi
