[pacman-dev] [PATCH 2/5] makepkg: break out checksum generation to its own function
Allan McRae
allan at archlinux.org
Mon Sep 29 03:57:39 UTC 2014
On 16/08/14 01:41, Dave Reisner wrote:
> This also fixes a "bug" in which a PKGBUILD without any source array
> would generate "md5sums=()". While not technically wrong, we can easily
> do better and emit nothing at all.
> ---
> scripts/makepkg.sh.in | 73 +++++++++++++++++++++++++++++----------------------
> 1 file changed, 41 insertions(+), 32 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 116b46e..a8ae1de 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1120,6 +1120,46 @@ get_integlist() {
> fi
> }
>
> +generate_one_checksum() {
> + local integ=$1 numsrc=${#source[*]} indentsz idx
Is there a reason to change to [*] instead of [@] here?
> +
> + if (( numsrc == 0 )); then
> + return
> + fi
> +
> + printf "%ssums=(%n" "$integ" indentsz
> +
> + for (( idx = 0; idx < numsrc; ++idx )); do
> + local netfile=${source[idx]}
> + local proto sum
> + proto="$(get_protocol "$netfile")"
> +
> + case $proto in
> + bzr*|git*|hg*|svn*)
> + sum="SKIP"
> + ;;
> + *)
> + if [[ ! $netfile = *.@(sig?(n)|asc) ]]; then
> + local file
> + file="$(get_filepath "$netfile")" || missing_source_file "$netfile"
> + sum="$(openssl dgst -${integ} "$file")"
> + sum=${sum##* }
> + else
> + sum="SKIP"
> + fi
> + ;;
> + esac
> +
> + # indent checksum on lines after the first
> + printf "%*s%s" $(( idx ? indentsz : 0 )) '' "'$sum'"
> +
> + # print a newline on lines before the last
> + (( idx < (numsrc - 1) )) && echo
> + done
> +
> + echo ")"
> +}
> +
> generate_checksums() {
> msg "$(gettext "Generating checksums for source files...")"
>
> @@ -1142,38 +1182,7 @@ generate_checksums() {
> exit 1 # $E_CONFIG_ERROR
> fi
>
> - local indentsz idx numsrc=${#source[@]}
> - printf "%s%n" "${integ}sums=(" indentsz
> -
> - for (( idx = 0; idx < numsrc; i++ )); do
> - local netfile=${source[idx]}
> - local proto sum
> - proto="$(get_protocol "$netfile")"
> -
> - case $proto in
> - bzr*|git*|hg*|svn*)
> - sum="SKIP"
> - ;;
> - *)
> - if [[ ! $netfile = *.@(sig?(n)|asc) ]]; then
> - local file
> - file="$(get_filepath "$netfile")" || missing_source_file "$netfile"
> - sum="$(openssl dgst -${integ} "$file")"
> - sum=${sum##* }
> - else
> - sum="SKIP"
> - fi
> - ;;
> - esac
> -
> - # indent checksum on lines after the first
> - printf "%*s%s" $(( idx ? indentsz : 0 )) '' "'$sum'"
> -
> - # print a newline on lines before the last
> - (( ++idx < numsrc )) && echo
> - done
> -
> - echo ")"
> + generate_one_checksum "$integ"
> done
> }
>
>
More information about the pacman-dev
mailing list