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
>  }
>  
> 

Reply via email to