index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Dave Reisner <dreisner@archlinux.org> | 2013-09-02 15:53:33 -0400 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-09-04 09:51:20 +1000 |
commit | b370f0ca427fe9d83a5d8e0951f30e9b6c9e03f8 (patch) | |
tree | fe1842b3dd41f891c8d8cf728abe788aeef60533 /scripts/makepkg.sh.in | |
parent | aade18cf3b32ffb5352f21edd135056286c3658d (diff) |
-rw-r--r-- | scripts/makepkg.sh.in | 31 |
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 025f7564..3feb460c 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -54,6 +54,8 @@ splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'url' 'license' \ 'replaces' 'backup' 'options' 'install' 'changelog') readonly -a packaging_options other_options splitpkg_overrides +known_hash_algos=('md5' 'sha1' 'sha256' 'sha384' 'sha512') + # Options ASDEPS=0 NEEDED=0 @@ -1107,10 +1109,10 @@ 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) + for integ in "${known_hash_algos[@]}"; do + local sumname="${integ}sums[@]" + if [[ -n ${!sumname} ]]; then + integlist+=("$integ") fi done @@ -1131,19 +1133,17 @@ generate_checksums() { local integlist if (( $# == 0 )); then - integlist=$(get_integlist) + IFS=$'\n' read -ra integlist < <(get_integlist) else - integlist=$@ + integlist=("$@") fi local integ - for integ in ${integlist[@]}; do - case "$integ" in - md5|sha1|sha256|sha384|sha512) : ;; - *) - error "$(gettext "Invalid integrity algorithm '%s' specified.")" "$integ" - exit 1;; # $E_CONFIG_ERROR - esac + for integ in "${integlist[@]}"; do + if ! in_array "$integ" "${known_hash_algos[@]}"; then + error "$(gettext "Invalid integrity algorithm '%s' specified.")" "$integ" + exit 1 # $E_CONFIG_ERROR + fi local ct=0 local numsrc=${#source[@]} @@ -1192,8 +1192,9 @@ check_checksums() { local correlation=0 local integ required - for integ in md5 sha1 sha256 sha384 sha512; do - local integrity_sums=($(eval echo "\${${integ}sums[@]}")) + for integ in "${known_hash_algos[@]}"; do + local sumname="${integ}sums[@]" + local integrity_sums=("${!sumname}") if (( ${#integrity_sums[@]} == ${#source[@]} )); then msg "$(gettext "Validating source files with %s...")" "${integ}sums" correlation=1 |