58 lines
1.3 KiB
Bash
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
|
|
}
|