summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorXavier Chantry <shiningxc@gmail.com>2009-10-14 20:07:28 +0200
committerDan McGee <dan@archlinux.org>2010-05-06 02:28:49 +0200
commit79987c92cb07c67914adf1febcc5ebdecf2a09b7 (patch)
treece483b706eac7f894482acbbd218cde6e2c4912e /scripts
parent64c3255b0e03190a35a1cef4bbc8b75b6be72684 (diff)
downloadpacman-79987c92cb07c67914adf1febcc5ebdecf2a09b7.tar.gz
pacman-79987c92cb07c67914adf1febcc5ebdecf2a09b7.tar.xz
makepkg -g: use checksums defined in the pkgbuild
Signed-off-by: Xavier Chantry <shiningxc@gmail.com> [Allan: amend documentation] Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/makepkg.sh.in27
1 files changed, 26 insertions, 1 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 7e99062b..dbb1a1e7 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -497,6 +497,24 @@ download_sources() {
popd &>/dev/null
}
+get_integlist() {
+ local integ
+ local integlist=()
+
+ for integ in md5 sha1 sha256 sha384 sha512; do
+ local integrity_sums=($(eval echo "\${${integ}sums[@]}"))
+ if [[ -n "$integrity_sums" ]]; then
+ integlist=(${integlist[@]} $integ)
+ fi
+ done
+
+ if (( ${#integlist[@]} > 0 )); then
+ echo ${integlist[@]}
+ else
+ echo ${INTEGRITY_CHECK[@]}
+ fi
+}
+
generate_checksums() {
msg "$(gettext "Generating checksums for source files...")"
plain ""
@@ -506,8 +524,15 @@ generate_checksums() {
exit 1 # $E_MISSING_PROGRAM
fi
+ local integlist
+ if (( $# == 0 )); then
+ integlist=$(get_integlist)
+ else
+ integlist=$@
+ fi
+
local integ
- for integ in ${INTEGRITY_CHECK[@]}; do
+ for integ in ${integlist[@]}; do
integ="${integ,,}"
case "$integ" in
md5|sha1|sha256|sha384|sha512) : ;;