#!/bin/bash # xgensum [-i] TEMPLATE - update SHA256 sums in templates case "$1" in -i*) i=$1; shift esac if [ -f $1 ]; then . "$1" elif [ -f $1/template ]; then exec "$0" $i "$1/template" elif [ -f template ]; then exec "$0" $i template else echo Usage: gensum TEMPLATE fi XBPS_DISTDIR=$(xdistdir) XBPS_SRCDISTDIR=$($XBPS_DISTDIR/xbps-src show-var XBPS_SRCDISTDIR | tail -1) srcdir="$XBPS_SRCDISTDIR/$pkgname-$version" $XBPS_DISTDIR/xbps-src -I fetch $pkgname sums="" for f in $distfiles; do curfile=$(basename "${f#*>}") distfile="$srcdir/$curfile" sum=$(sha256sum $distfile) sums+="${sum% *}\n " done sed $i -e "/^checksum=/,/^[^ \t]/{ /^[ \t]/d s/^checksum=.*/checksum=\"${sums%\n }\"/ /^checksum=\"[^ ]*\"/s/\"//g }" "$1"