Oops, here it is attached in case.
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2941a5d..d3d0d61 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -504,7 +504,6 @@ download_sources() {
generate_checksums() {
msg "$(gettext "Generating checksums for source files...")"
- plain ""
if [ ! $(type -p openssl) ]; then
error "$(gettext "Cannot find openssl.")"
@@ -523,6 +522,7 @@ generate_checksums() {
local ct=0
local numsrc=${#sour...@]}
+ echo
echo -n "${integ}sums=("
local i=0;
@@ -557,6 +557,45 @@ generate_checksums() {
done
}
+update_checksums() {
+ local file="$startdir/$BUILDSCRIPT"
+ local integ
+
+ # necessary override for --geninteg
+ unset INTEGRITY_CHECK
+
+ for integ in md5 sha1 sha256 sha384 sha512; do
+ grep "${integ}sums=(" $file &> /dev/null && \
+ INTEGRITY_CHECK=(${integrity_che...@]} $integ)
+ done
+
+ integ=${INTEGRITY_CHECK[0]}
+ if grep "&& ${integ}sums=(" "$file" | grep '$CARCH' &> /dev/null; then
+ error "$(gettext "Multi-arch checksum update not supported. Exiting...")"
+ exit 1
+ else
+ for integ in ${integrity_che...@]}; do
+ sed -i "/${integ}sums=(/,/)$/d" "$file"
+ done
+
+ if grep "# vim: set" "$file" &> /dev/null; then
+ sed -i '/# vim: set/d' "$file"
+ sed -i -e :a -e '/^\n*$/{$d;N;ba' -e '}' "$file"
+ local vimset=1
+ fi
+
+ generate_checksums >> "$file"
+
+ if [ $vimset -eq 1 ]; then
+ echo >> "$file"
+ echo "# vim: set ts=2 sw=2 et:" >> "$file"
+ fi
+ fi
+
+ msg "$(gettext "Updated checksums in %s")" "$BUILDSCRIPT"
+ return 0
+}
+
check_checksums() {
[ ${#sour...@]} -eq 0 ] && return 0
@@ -1431,6 +1470,7 @@ usage() {
echo "$(gettext " -e, --noextract Do not extract source files (use existing src/ dir)")"
echo "$(gettext " -f, --force Overwrite existing package")"
echo "$(gettext " -g, --geninteg Generate integrity checks for source files")"
+ printf "$(gettext " -G, --getinteg Update integrity checks in %s")\n" "$BUILDSCRIPT"
echo "$(gettext " -h, --help This help")"
echo "$(gettext " -i, --install Install package after successful build")"
echo "$(gettext " -L, --log Log package build process")"
@@ -1477,9 +1517,9 @@ fi
ARGLIST=$@
# Parse Command Line Options.
-OPT_SHORT="AcCdefFghiLmop:rRsV"
+OPT_SHORT="AcCdefFgGhiLmop:rRsV"
OPT_LONG="allsource,asroot,ignorearch,clean,cleancache,nodeps"
-OPT_LONG="$OPT_LONG,noextract,force,forcever:,geninteg,help,holdver"
+OPT_LONG="$OPT_LONG,noextract,force,forcever:,geninteg,getinteg,help,holdver"
OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,skipinteg"
OPT_LONG="$OPT_LONG,source,syncdeps,version,config:"
# Pacman Options
@@ -1512,6 +1552,7 @@ while true; do
--forcever) shift; FORCE_VER=$1;;
-F) INFAKEROOT=1 ;;
-g|--geninteg) GENINTEG=1 ;;
+ -G| --getinteg) GETINTEG=1 ;;
--holdver) HOLDVER=1 ;;
-i|--install) INSTALL=1 ;;
-L|--log) LOGGING=1 ;;
@@ -1680,6 +1721,15 @@ if [ "$GENINTEG" -eq 1 ]; then
exit 0 # $E_OK
fi
+if [ "$GETINTEG" -eq 1 ]; then
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+ download_sources
+ update_checksums
+ cd "$startdir"
+ exit 0
+fi
+
if [ "$(type -t package)" = "function" ]; then
PKGFUNC=1
fi