Files
miaur/lib/review.sh
T
2026-07-19 14:06:49 +08:00

58 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# PKGBUILD review
# Review PKGBUILD in dir. Returns 0 to continue, 1 to abort.
review_pkgbuild() {
local dir=$1
local name=${2:-$(basename "$dir")}
[[ ${MIAUR_SKIPREVIEW:-0} -eq 1 ]] && return 0
local pb="$dir/PKGBUILD"
[[ -f $pb ]] || die "PKGBUILD not found: $dir"
msg "Reviewing the PKGBUILD for $name"
if command -v "${MIAUR_BAT}" >/dev/null 2>&1; then
"${MIAUR_BAT}" --style=plain --paging=always --language=bash "$pb" || true
elif command -v less >/dev/null 2>&1; then
less -R "$pb" || true
else
cat "$pb"
fi
# Also show install script / other files briefly
local f
for f in "$dir"/*.install "$dir"/PKGBUILD; do
[[ -f $f ]] || continue
done
while true; do
printf '%s::%s View diff (d), edit (e), continue (y), skip (s), or quit (q)? [Y/d/e/s/q] ' \
"${C_BOLD}${C_BLUE}" "${C_RESET}"
local ans=
read -r ans || return 1
ans=${ans:-y}
case "${ans,,}" in
y | yes | '') return 0 ;;
q | quit | n | no)
warn "Cancelled by user"
return 1
;;
s | skip) return 2 ;;
e | edit)
"${MIAUR_EDITOR}" "$pb"
;;
d | diff)
if [[ -d $dir/.git ]]; then
(cd "$dir" && ${MIAUR_GIT} diff -- PKGBUILD) || true
else
warn "No Git history is available for comparison"
fi
;;
*)
warn "Invalid input"
;;
esac
done
}