public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Steve Long <slong@rathaus.eclipse.co.uk>
To: gentoo-dev@lists.gentoo.org
Cc: gentoo-portage-dev@lists.gentoo.org
Subject: [gentoo-dev]  Re: More general interface to use flags
Date: Sun, 04 Nov 2007 10:54:30 +0000	[thread overview]
Message-ID: <fgk860$gv$1@ger.gmane.org> (raw)
In-Reply-To: 472B29B9.50002@gentoo.org

Marijn Schouten (hkBst) wrote:
> the current interface to use flags, useq, usev, use_with, use_enable, as
> defined in /usr/lib/portage/bin/ebuild.sh lacks generality. The common
> thing is testing a use flag and possibly echoing a string, but there is no
> function that implements this common behaviour.
> 
> I propose that we add such a function. Proposed name for the function is
> "ifuse".
>
I like the overall API that is enabled (and that it doesn't break anything.)

> I also propose to add the utility function "ifv" which is useful for
> writing concise and clean code.
>
This one seems a bit light-weight to me, but if it makes your life easier,
why not?

One minor thing; -n is the default test, so:
[[ $1 ]] is the same as [[ -n $1 ]]
and:
[[ ! $1 ]] is the same as [[ -z $1 ]]
''help test'' is very revealing, for those who haven't read it. ;-)

Also, you need to add quotes to the echo'ed vars, as Mr Marples outlined:

ifv() {
    [[ $1 ]] && echo "$2" || echo "$3"
}

If you don't, the vars will be split according to IFS, and treated as
separate parameters, eg:
~ $ a=$'blah\nfoo'
~ $ echo "$a"
blah
foo
~ $ echo $a
blah foo

The following sums up the whole quoting issue IMO:
"At its base, a shell is simply a macro processor that executes commands.
The term macro processor means functionality where text and symbols are
expanded to create larger expressions."
http://tiswww.tis.case.edu/~chet/bash/bashref.html


-- 
gentoo-dev@gentoo.org mailing list



  parent reply	other threads:[~2007-11-04 10:58 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-02 13:44 [gentoo-dev] More general interface to use flags Marijn Schouten (hkBst)
2007-11-02 14:04 ` Roy Marples
2007-11-02 14:27   ` Marijn Schouten (hkBst)
2007-11-02 14:52     ` Roy Marples
2007-11-02 14:59   ` Mike Frysinger
2007-11-02 15:30     ` Roy Marples
2007-11-02 15:38       ` Mike Frysinger
2007-11-02 15:48         ` Roy Marples
2007-11-02 15:58           ` Mike Frysinger
2007-11-02 16:10             ` Roy Marples
2007-11-02 16:30               ` Bo Ørsted Andresen
2007-11-02 16:52                 ` Roy Marples
2007-11-02 17:17                   ` Bo Ørsted Andresen
2007-11-02 17:35                     ` Roy Marples
2007-11-03  0:19                       ` [gentoo-dev] POSIX shell and "portable" Fabian Groffen
2007-11-03  0:47                         ` Roy Marples
2007-11-05  9:22                           ` Michael Haubenwallner
2007-11-05 10:13                             ` Roy Marples
2007-11-05 13:21                               ` Michael Haubenwallner
2007-11-05 20:21                                 ` Mike Frysinger
2007-11-05 23:18                                   ` Roy Marples
2007-11-06  7:12                                     ` Ciaran McCreesh
2007-11-06  7:40                                       ` Roy Marples
2007-11-06  8:03                                         ` Ciaran McCreesh
2007-11-06  8:25                                           ` Roy Marples
2007-11-06  9:04                                     ` Michael Haubenwallner
2007-11-05 20:32                                 ` Roy Marples
2007-11-05 20:55                                   ` Fabian Groffen
2007-11-05 22:27                                   ` Mike Frysinger
2007-11-03  0:57                         ` Natanael copa
2007-11-03  1:06                         ` Roy Marples
2007-11-03 16:19                           ` [gentoo-dev] " Steve Long
2007-11-03  1:10                         ` [gentoo-dev] " Roy Marples
     [not found]                       ` <b41005390711022225i4f30bb01jbf5a040c60c4b088@mail.gmail.com>
2007-11-03  5:26                         ` Fwd: [gentoo-dev] More general interface to use flags Alec Warner
2007-11-03 21:57                           ` Mike Frysinger
2007-11-04 10:54 ` Steve Long [this message]
2007-11-04 21:54   ` [gentoo-dev] " Alec Warner
2007-11-06 11:50     ` Steve Long

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='fgk860$gv$1@ger.gmane.org' \
    --to=slong@rathaus.eclipse.co.uk \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=gentoo-portage-dev@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