2
1
Fork 0
mirror of https://git.savannah.gnu.org/git/gnuboot.git synced 2025-01-03 23:07:39 +01:00
gnuboot/tests/distclean
Denis 'GNUtoo' Carikli 0057ddf2a1
packages: coreboot: distclean: Use bash to avoid issue in PureOS.
Without that fix we have the following issue on PureOS byzantium:
    $ resources/packages/coreboot/distclean
    resources/packages/coreboot/distclean: 19:
    resources/packages/coreboot/../../scripts/tasks/distclean.sh:
    Bad substitution
    resources/packages/coreboot/distclean: 20: .:
    cannot open /../../..//resources/scripts/misc/sysexits.sh:
    No such file

This happens because packages/coreboot/distclean uses #!/bin/sh and
that the default sh shell isn't using bash:
    $ readlink $(which sh)
    dash
and using bash instead works fine:
    $ bash resources/packages/coreboot/distclean ; echo $?
    0
all the other distclean scripts in packages/*/ have exactly the same
issue. The tests/distlean script is also affected since it also
sources the distclean task.

So we use #!/usr/bin/env bash as it work with both Guix and regular
more or less FHS compliant distributions.

This issue was introduced by the commit
c7e28dc660 ("packages: Add distclean").

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
2023-12-09 15:53:48 +01:00

51 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
printf "+-------------------------+\n"
printf "| Running distclean test: |\n"
printf "+-------------------------+\n"
# shellcheck source=resources/scripts/tasks/distclean.sh
. "$(dirname "$0")"/../resources/scripts/tasks/distclean.sh
report()
{
ret=$?
message="$1"
if [ ${ret} -eq 0 ] ; then
echo "[ OK ] ${message}"
else
echo "[ !! ] ${message} failed"
exit ${ret}
fi
}
tmpdir="$(mktemp -d)" && test -d "${tmpdir}" ; report "\${tmpdir} created"
distclean_test()
{
rmdir "${tmpdir}" && test ! -d "${tmpdir}" ; report "\${tmpdir} removed"
}
# shellcheck disable=SC2068
distclean_main distclean_test $@
printf "+---------------------+\n"
printf "| Running tests done: |\n"
printf "+---------------------+\n"