From: Steven J Long <slong@rathaus.eclipse.co.uk>
To: gentoo-devhelp@lists.gentoo.org
Subject: [gentoo-devhelp] Re: Re: LINGUAS vs LANGUAGES
Date: Sat, 01 Aug 2009 16:22:41 +0100 [thread overview]
Message-ID: <13017217.uNbVpHm14s@news.friendly-coders.info> (raw)
In-Reply-To: 200907261651.44164.vapier@gentoo.org
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 ;-)
next prev parent reply other threads:[~2009-08-01 15:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-15 13:39 [gentoo-devhelp] LINGUAS vs LANGUAGES Nikos Chantziaras
[not found] ` <6142e6140905150705n3db6e281g43439abe11eb1fb7@mail.gmail.com>
2009-05-15 14:47 ` Nikos Chantziaras
2009-05-15 15:01 ` Daniel Pielmeier
2009-05-15 16:35 ` Daniel Pielmeier
2009-05-15 19:16 ` [gentoo-devhelp] " Nikos Chantziaras
2009-07-21 10:13 ` Steven J Long
2009-07-26 20:51 ` Mike Frysinger
2009-08-01 15:22 ` Steven J Long [this message]
2009-08-06 19:40 ` [gentoo-devhelp] " Steven J Long
2009-08-13 19:28 ` Mike Frysinger
2009-08-15 23:16 ` [gentoo-devhelp] " Steven J Long
2009-07-31 15:26 ` [gentoo-devhelp] " Nikos Chantziaras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13017217.uNbVpHm14s@news.friendly-coders.info \
--to=slong@rathaus.eclipse.co.uk \
--cc=gentoo-devhelp@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox