On Sun, Dec 26, 2010 at 01:59:05AM +0200, Nezmer wrote:
Hi,
In commit ef977865, awk was added as an external tool needed by makepkg.
As you know, there is different awk implementations out there. nawk is the implementation shipped by default in non-GNU systems As far as I know.
Unfortunately, awk usage in makepkg is not nawk-compatible.
Command:
%gawk '/^[[:space:]]*provides=/,/)/' B | sed "s/provides=/provides_list+=/"
Output:
provides_list+=('p1' 'p2' '3') # comment
Command:
% awk '/^[[:space:]]*provides=/,/)/' B | sed "s/provides=/provides_list+=/"
Output:
awk: illegal primary in regular expression ) at source line number 1 context is >>> /^[[:space:]]*provides=/,/)/ <<<
======================
Anyway, what is awk doing here? Is it the same as: egrep '^\s*provides=\(.*\)'
Installed nawk to play around with this. It looks like all that's needed is to escape the closing parenthesis on the ending address: $ nawk '/^[[:space:]]*md5sums=/,/\)/' < PKGBUILD md5sums=('f26f78f09cc675c9d2c0eacc54b223d6' 'c5e849fcb1101149977355c99d8ff78f' '096a46ef386817988250d2d7bddd1b34') This plays well with gawk and mawk as well. Wasn't able to locate a multi-line provides, but any multi-line array attribute should be sufficient, no? dave