Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN via buildroot" <buildroot@buildroot.org>
To: Fiona Klute <fiona.klute@gmx.de>
Cc: buildroot@buildroot.org,
	Brandon Maier <brandon.maier@collins.com>,
	Ricardo Martincoski <ricardo.martincoski@datacom.com.br>
Subject: Re: [Buildroot] [PATCH next v4 1/1] utils/docker-run: mount and pass BR2_EXTERNAL dirs
Date: Sun, 5 Apr 2026 18:59:39 +0200	[thread overview]
Message-ID: <adKU-16ILEg2aWbt@landeda> (raw)
In-Reply-To: <e09aa58a-2cb0-4ef6-b9fd-1a6a6fd15a21@gmx.de>

Fiona, All,

On 2026-04-05 17:48 +0200, Fiona Klute spake thusly:
> Am 31.08.24 um 21:19 schrieb Fiona Klute via buildroot:
> > From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> > The BR2_EXTERNAL environment variable is passed into the container,
> > and each path listed in it mounted. This allows using external trees
> > when running a build using utils/docker-run. Testing the existence of
> > the variable instead of a non-empty value allows passing an empty
> > BR2_EXTERNAL variable to disable currently set external trees.
[--SNIP--]
> > diff --git a/utils/docker-run b/utils/docker-run
> > index 1adb02d74e..9579f83ce2 100755
> > --- a/utils/docker-run
> > +++ b/utils/docker-run
> > @@ -90,6 +90,13 @@ if [ "${BR2_DL_DIR}" ]; then
> >       docker_opts+=( --env BR2_DL_DIR )
> >   fi
> > 
> > +if [ -v BR2_EXTERNAL ]; then

As this is a bit unusual (but perfectly legit!), maybe a little comment
above the code to explain the intent:

    # Test the variable exists, not just that it is non-empty,
    # to be able to propagate an empty BR2_EXTERNAL.

But -v is a bashism (that's OK, we're using bash in the shabang), but
the more usual (and POSIXly correct [0]) way is to use something like:

    if [ "${BR2_EXTERNAL+set}" ]; then

(an empty string evaluates to false).

I prefer we use standard constructs when they exist, and are not too
cumbersome to use, rather than bashisms that do not provie that much of
an improvement.

> > +    docker_opts+=( --env BR2_EXTERNAL )
> > +    for br2_ext in ${BR2_EXTERNAL//:/ }; do
> > +        mountpoints+=( "${br2_ext}" )
> > +    done

Why the loop? You can just append-assign the expansion:

    mountpoints+=( ${BR2_EXTERNAL//:/ } )

[0] https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#tag_19_06_02

Regards,
Yann E. MORIN.

> > +fi
> > +
> >   # shellcheck disable=SC2013 # can't use while-read because of the assignment
> >   for dir in $(printf '%s\n' "${mountpoints[@]}" |LC_ALL=C sort -u); do
> >       docker_opts+=( --mount "type=bind,src=${dir},dst=${dir}" )
> > --
> > 2.45.2
> > 
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2026-04-05 16:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-31 19:19 [Buildroot] [PATCH next v4 1/1] utils/docker-run: mount and pass BR2_EXTERNAL dirs Fiona Klute via buildroot
2026-04-05 15:48 ` Fiona Klute via buildroot
2026-04-05 16:59   ` Yann E. MORIN via buildroot [this message]
2026-04-05 18:59     ` Fiona Klute via buildroot

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=adKU-16ILEg2aWbt@landeda \
    --to=buildroot@buildroot.org \
    --cc=brandon.maier@collins.com \
    --cc=fiona.klute@gmx.de \
    --cc=ricardo.martincoski@datacom.com.br \
    --cc=yann.morin.1998@free.fr \
    /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