On 16/02/2009, at 10:57 PM, Dan McGee wrote:

On Mon, Feb 16, 2009 at 3:32 AM, Sebastian Nowicki <[email protected]> wrote:

On 16/02/2009, at 5:24 PM, Xavier wrote:

On Mon, Feb 16, 2009 at 4:17 AM, Dan McGee <[email protected]> wrote:

Wow indeed, I always read the old version wrongly, I just realized the
old for was split on two lines :

-       for line in $(bsdtar -xOf "$pkgfile" .PKGINFO | \
- grep -v "^#" | sed 's|\(\w*\)\s*=\s*\(.*\)| \1="\2"|'); do

How about keeping that part, and just `read`ing the values in:

for line in $(bsdtar -xOf "$pkgfile" .PKGINFO | \
      grep -v "^#" | sed 's|\(\w*\)\s*=\s*\(.*\)|\1 "\2"|'); do
      echo $line | read var val
      declare $var="$val"
      # Rest is just as in the patch
done

I haven't actually tested it since the regex is somewhat faulty on Mac OS X
for some reason, and I'm too lazy to boot Arch up :P.

When you do test it, I would put my money on it being broken the same
way the original one is. :)

*pays up*

Indeed, it's broken. I didn't think that the for loop would be the problem. Fortunately this lead to a slightly smaller, albeit less legible, loop instead:

$ bsdtar -xOf "$pkgfile" .PKGINFO | grep -v "^#" | sed 's|\(\w*\)\s*= \s*\(.*\)|\1 \2|' | while read var val; do echo declare $var=\"$val\"; done
declare pkgname="perl-bit-vector"
declare pkgver="6.4-3"
declare pkgdesc="Efficient bit vector, set of integers and "big int" math library"
declare url="http://search.cpan.org/dist//";
declare builddate="1200021098"
declare packager="Eric Belanger <[email protected]>"
declare size="463896"
declare arch="x86_64"
declare license="GPL"
declare license="LGPL"
declare license="PerlArtistic"
declare depend="perl-carp-clan"
declare depend="perl>=5.10.0"

Seems to work fine on the package in question.

_______________________________________________
pacman-dev mailing list
[email protected]
http://www.archlinux.org/mailman/listinfo/pacman-dev

Reply via email to