On Mon, Jul 08, 2019 at 06:35:25PM +0200, Thomas Monjalon wrote:
> 05/07/2019 15:58, Olivier Matz:
> > - As "readlink -e" and "readlink -m" do not exist on freebsd,
> >   use "readlink -f", it should not have any impact in these cases.
> > - "sed -ri" is invalid on freebsd and should be replaced by
> >   "sed -ri=''"
> > - Use gmake instead of make.
> > 
> > This fixes the following command:
> >   SYSDIR=/usr/src/sys ./devtools/test-build.sh \
> >     -j4 x86_64-native-freebsd-gcc
> > 
> > Signed-off-by: Olivier Matz <olivier.m...@6wind.com>
> > ---
> > --- a/devtools/test-build.sh
> > +++ b/devtools/test-build.sh
> > +[ -z $MAKE ] && command -v gmake > /dev/null && MAKE=gmake
> > +[ -z $MAKE ] && command -v make > /dev/null && MAKE=make
> > +[ -z $MAKE ] && echo "Cannot find make or gmake" && exit 1
> 
> I'm surprised it works, given the -e in this script.
> I would be more confortable with "if/elif" constructs.

Honnestly, I'm surprised too :)

This is the expected. Quoting "man sh":

  -e errexit
       If not interactive, exit immediately if any untested command fails.  The
       exit status of a command is considered to be explicitly tested if the
       command is used to control an if, elif, while, or until; or if the
       command is the left hand operand of an "&&" or "||" operator.

Reply via email to