I'd like to see support for split packages, too, maybe I'll add it some time. Using it locally, while improving my dwm patches. Different approaches include playing around with $PATH, use absolute start paths for testing, but once I got used to this way, I just can't resist it any more... :) cheers! mar77i --- contrib/pkgdigest.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) create mode 100755 contrib/pkgdigest.sh diff --git a/contrib/pkgdigest.sh b/contrib/pkgdigest.sh new file mode 100755 index 0000000..278a838 --- /dev/null +++ b/contrib/pkgdigest.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +if ! [[ -w PKGBUILD ]]; then + echo "Error: no PKGBUILD found." >&2 + exit 1 +fi + +cp PKGBUILD PKGBUILD~ +i=0 +lines=() +marker= +contexts=0 +md5context=0 +while read -r; do + if [[ "$REPLY" =~ (build|check|package)(_.*)?\(\) ]]; then + (( ${#marker} )) || marker=$i + fi + # only ever replace one sum + [[ "${REPLY,,}" == "md5sums="* ]] && (( md5context=1, contexts+= 1 )) + if (( md5context && contexts < 2 )); then + # no one ever would do parameter expansion in md5sums + # comments however that contain parens are possible + [[ "$REPLY" =~ [^#]*\) ]] && md5context=0 + else + lines+=("$REPLY") && (( i++ )) + fi +done < PKGBUILD + +while [[ "${lines[marker - 1]}" == '' ]]; do + (( marker -= 1 )) +done + +for (( i=0; i < marker; i++ )); do + echo "${lines[i]}" +done > PKGBUILD +echo "$(makepkg -g)" >> PKGBUILD +for (( i=marker; i < ${#lines[@]}; i++ )); do + echo "${lines[i]}" +done >> PKGBUILD -- 1.7.7.1