Tim Crawford 968a612824 scripts: Address shellcheck issues
Report issues by shell files with:

    git ls-files '*.sh' | xargs shellcheck --exclude=SC2162

Address the following:

- SC1087: Use braces when expanding arrays
- SC1091: Not following
- SC2004: `$`/`${}` is unnecessary on arithmetic variables
- SC2024: `sudo` doesn't affect redirects
- SC2034: foo appears unused. Verify it or export it
- SC2086: Double quote to prevent globbing and word splitting
- SC2087: Quote `EOF`
- SC2115: Use `"${var:?}"` to ensure this never expands to `/*`
- SC2148: Add a shebang

Addresses (at least partially) some POSIX/dash issues:

- SC2113: `function` keyword is non-standard
- SC3010: In POSIX sh, `[[` `]]` is undefined
- SC3014: In POSIX sh, `==` in place of `=` is undefined
- SC3020: In POSIX sh, `&>` is undefined
- SC3046: In POSIX sh, `source` in place of `.` is undefined

Does not address:

- SC2162: `read` without `-r` will mangle backslashes
- Any other POSIX/dash-specific issues

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2023-10-19 14:45:22 -06:00

41 lines
766 B
Bash
Executable File

#!/usr/bin/env bash
# shellcheck disable=SC1091
set -e
if [ -z "$1" ]
then
echo "$0 [UEFIPAYLOAD.fd] <ARGS..>" >&2
exit 1
fi
UEFIPAYLOAD="$(realpath "$1")"
PACKAGE=UefiPayloadPkg
BUILD_TYPE=RELEASE
#BUILD_TYPE=DEBUG
TOOLCHAIN=COREBOOT
COREBOOT_TOOLS_DEF="$XGCCPATH/../share/edk2config/tools_def.txt"
# Force use of python3
export PYTHON_COMMAND=python3
pushd edk2 >/dev/null
make -C BaseTools --jobs="$(nproc)"
source edksetup.sh --reconfig
cat "${COREBOOT_TOOLS_DEF}" >> Conf/tools_def.txt
build \
-a IA32 \
-a X64 \
-b "${BUILD_TYPE}" \
-t "${TOOLCHAIN}" \
-p "${PACKAGE}/${PACKAGE}.dsc" \
"${@:2}"
cp -v \
"Build/${PACKAGE}X64/${BUILD_TYPE}_${TOOLCHAIN}/FV/UEFIPAYLOAD.fd" \
"${UEFIPAYLOAD}"
popd >/dev/null