#!/usr/bin/env bash # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2026 Bryan Joshua Pedini # fake apt-cache (unit tests): show / rdepends / policy from data/apt/ # shellcheck source=../fakelib.bash . "${BASH_SOURCE[0]%/*}/../fakelib.bash" fake_log "$@" pkgs=() for a in "$@"; do case $a in -*) ;; *) pkgs+=("$a") ;; esac; done verb=${pkgs[0]} pkgs=("${pkgs[@]:1}") case $verb in show) f=$FAKE_DATA/apt/show/${pkgs[0]} if [[ ! -f $f ]] || fake_purged "${pkgs[0]}"; then echo "E: No packages found" >&2 exit 100 fi cat "$f" ;; rdepends) f=$FAKE_DATA/apt/rdepends/${pkgs[0]} if [[ -f $f ]]; then cat "$f"; else printf '%s\nReverse Depends:\n' "${pkgs[0]}"; fi ;; policy) # print the stanzas of the requested packages want=" ${pkgs[*]} " show=0 while IFS= read -r line; do if [[ $line =~ ^([^ ].*):$ ]]; then if [[ $want == *" ${BASH_REMATCH[1]} "* ]]; then show=1; else show=0; fi fi ((show)) && printf '%s\n' "$line" done <"$FAKE_DATA/apt/policy.txt" exit 0 ;; *) echo "fake apt-cache: unhandled: $*" >&2 exit 99 ;; esac