[pacman-dev] code reuse for PKGBUILD

Florian Pritz bluewind at xinu.at
Fri Mar 22 14:34:32 EDT 2013


On 03.02.2013 00:07, Allan McRae wrote:
> On 02/02/13 23:48, Florian Pritz wrote:
>> Any progress on this?
> 
> No...  I expected to see a wiki page started with the details of how
> this would work and some examples.

I don't speak awk so I coded a basic POC in perl. If someone wants to
turn this into awk please be my guest (assuming everyone is happy with
the behaviour and input + output).

It updates an input containing either "# template start; .." and "#
template end; ..." markers or "%% template input; .." with the current
templates. The "%% template input" syntax is just for initial PKGBUILD
creation so the user doesn't have to write a start and end tag with no
code inbetween.

Perl script: http://paste.xinu.at/SMlb/
input file: http://paste.xinu.at/Fue8s/
template files: http://paste.xinu.at/tVhDo/ http://paste.xinu.at/y7x4S/

Example output:
######
pkgname=foo
pkgver=1

build() {
# template start; name=perl-module; sha1=TODO; version=TODO;
this is before the blabla template
# template start; name=perl-bla; sha1=TODO; version=TODO;
bla bla
# template end; name=perl-bla
and this is after
perl Makefile.pl
make
make install
# template end; name=perl-module
}
######

If you run the script again it will remove the inlined templates and
recreate them from the template files.


Another note:
Lukas suggested on IRC that we could also just use an existing macro
tool such as m4. I didn't think about it before, but I feel like an
inline solution that just updates a simple file is better suited for
PKGBUILDS since they tend to be rather small and can be viewed more
easily if everything is inlined. Any other opinions here?

	Florian

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/pacman-dev/attachments/20130322/94f9a6a1/attachment.asc>


More information about the pacman-dev mailing list