Gentoo Archives: gentoo-devhelp

From: Steven J Long <slong@××××××××××××××××××.uk>
To: gentoo-devhelp@l.g.o
Subject: [gentoo-devhelp] Re: Re: LINGUAS vs LANGUAGES
Date: Sat, 01 Aug 2009 15:25:02
In Reply to: Re: [gentoo-devhelp] Re: LINGUAS vs LANGUAGES by Mike Frysinger
Mike Frysinger wrote:

> On Tuesday 21 July 2009 06:13:25 Steven J Long wrote: >> Nikos Chantziaras wrote: >> > Thanks. I ended up doing it this way, though with only one loop in >> > src_install(), which seems to be a bit more efficient and shorter: >> > >> > >> > LANGUAGES="de" >> > for i in ${LANGUAGES}; do >> > IUSE="${IUSE} linguas_${i}" >> > done >> >> Just on a side-note (not saying it's how you want to do this one), this >> is something that BASH arrays are nice for (saving another loop): >> $ foo=(bar baz quux) >> $ echo "prefixed: '${foo[*]/#/pfx_}'" >> prefixed: 'pfx_bar pfx_baz pfx_quux' > > printf would probably be better as it is typically a shell builtin and it > doesnt require use of arrays/uncommon syntax. > media-gfx/exiv2/exiv2-0.18.ebuild: > IUSE_LINGUAS="de es fi fr pl ru sk" > IUSE="${IUSE} $(printf 'linguas_%s ' ${IUSE_LINGUAS})"
Doh, forgot about printf. (We have alias print="printf '%s\n'" in our lib code which comes in handy too.) Nice one. The only issue with the above is that it requires a subshell; forking isn't cheap (especially on Interix/cygwin/doze) and in general it's considered a bit lame (at least amongst the ##bash old-timers that I bump heads with) to need forking in BASH, though ofc not in SH, which is why it might not be the best here, since the metadata generation phase is a restricted subset of SH, leave alone BASH, at least aiui. An example of BASH saving forking, would be where printf -v comes into play. A more portable, though less flexible command in terms of allowed characters is read from <<< [1]. Though that can be worked round, it's nice not to have to; a shell that is progressing while still retaining excellent portability is useful imo (so long as we don't get our knickers in a twist about using new features, since we can set a required EAPI per-profile in any case.) [1] @freenode: /msg greybot <<< Yes, I'm aware there are two versions of portability being discussed there. I figured our readership can differentiate, and if not you can always lead 'em gently by the hand to Massachusetts.. ;P -- #friendly-coders -- We're friendly but we're not /that/ friendly ;-)


Subject Author
Re: [gentoo-devhelp] Re: Re: LINGUAS vs LANGUAGES Mike Frysinger <vapier@g.o>
[gentoo-devhelp] Re: Re: LINGUAS vs LANGUAGES Steven J Long <slong@××××××××××××××××××.uk>