#!/bin/bash # xgensum [-f] [-i] TEMPLATE - update SHA256 sums in templates case "$1" in -f) f=$1; shift esac case "$1" in -i*) i=$1; shift esac if [ -f $1 ]; then . "$1" elif [ -f $1/template ]; then exec "$0" $f $i "$1/template" elif [ -f template ]; then exec "$0" $f $i template else echo 'Usage: xgensum [-f] [-i] TEMPLATE' fi XBPS_DISTDIR=$(xdistdir) XBPS_SRCDISTDIR=$($XBPS_DISTDIR/xbps-src show-var XBPS_SRCDISTDIR | tail -1) srcdir="$XBPS_SRCDISTDIR/$pkgname-$version" if [ "$f" = -f ]; then for f in $distfiles; do curfile=$(basename "${f#*>}") distfile="$srcdir/$curfile" rm -vf "$distfile" done $XBPS_DISTDIR/xbps-src -I clean $pkgname fi $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"