On Wed, Mar 27, 2019, 6:52 AM Pierre Labastie via blfs-dev <
[email protected]> wrote:

> Hi,
>
> When making scripts from the book (either by copy/paste
> or some use of xsltproc), the generated scripts have `&&' at
> the end of each line. It allows to not execute the following
> instructions if one instructions fail, but it defeats the use of
> "set -e". From the bash man page under the set builtin, for
> option -e (emphasis by me):
> ------------
> Exit  immediately  if a pipeline (which may consist of a
> single simple command), a list, or  a  compound  command
>   (see SHELL GRAMMAR above), exits with a non-zero status.
> *The shell does not exit if the  command  that  fails  is
> part  of  the command list immediately following a while
> or until keyword, part of the test following the  if  or
> elif  reserved  words, part of any command executed in a
> && or || list except the command following the final &&
> or ||, any command in a pipeline but the last, or if the
> command's return value is being inverted with !.*[...]
> ------------
> In short, with a construct like:
> ----
> set -e
> instruction A &&
> instruction B &&
> instruction C
> ----
> The script does not exit if either instruction A or instruction B fails,
> but the following instructions are not executed... This may lead to
> a script completing successfully, while the package was in fact not
> installed, or only partially installed or compiled!
>
> So why do we use those `&&' in the book???
>
> I've tried to automatically remove the `&&' in jhalfs, but it is not
> possible, because sometimes, the `... && ...' construct really really means
> if ...; then ...
>
> There could be a solution: ask devs not to use `... && ...' when they mean
> if ...; then ...
>
> Another is to not have `&&' at the end of line. Actually, what would we
> lose?
>

For me, it makes it easy to see which commands go together when editing the
jhalfs-generated scripts. For example, to remove the generation of API
documentation when I don't have the necessary tools installed.

However, I would gladly forego that luxury for the peace of mind in knowing
that when a build completes successfully, it actually installed everything.

>
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to