On Mon, Sep 29, 2014 at 01:57:39PM +1000, Allan McRae wrote:
> 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?

Nope. ${#a[*]} and ${#a[@]} are functionally equivalent.

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