summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-10-19 23:36:56 +0100
committerLeah Rowe <leah@libreboot.org>2023-10-19 23:36:56 +0100
commit0b98c9b00c6b99940555cff25f7c6858745a560c (patch)
treee79ed28e199df51146d6d850c224ee6b2e518638
parent8b6e44a104680412967acd6ac760945f8233abf2 (diff)
minor code cleanup in shell scripts
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-xbuild13
-rwxr-xr-xinclude/git.sh3
-rwxr-xr-xinclude/mrc.sh26
-rwxr-xr-xinclude/option.sh4
-rwxr-xr-xscript/build/fw/coreboot26
-rwxr-xr-xscript/update/project/trees16
-rwxr-xr-xscript/update/vendor/download8
-rwxr-xr-xscript/update/vendor/inject2
8 files changed, 39 insertions, 59 deletions
diff --git a/build b/build
index a539322f..09b08403 100755
--- a/build
+++ b/build
@@ -59,7 +59,7 @@ initialise_command()
[ "${mode}" = "help" ] && usage ${0} && lbmk_exit 0
if [ "${mode}" = "list" ]; then
- listitems "${buildpath}"
+ items "${buildpath}"
lbmk_exit 0
elif [ $# -lt 2 ]; then
usage ${0}
@@ -91,15 +91,8 @@ install_packages()
execute_command()
{
- if [ "${option}" = "list" ]; then
- xx_ listitems "${buildpath}/${mode}"
- lbmk_exit 0
- fi
+ [ "$option" = "list" ] && xx_ items "$buildpath/$mode" && lbmk_exit 0
lbmkcmd="${buildpath}/${mode}/${option}"
- [ "${lbmkcmd}" = "./script/build/boot/roms" ] && \
- printf "NOTE: ./build boot roms now: ./build fw coreboot\n" 1>&2
- [ "${lbmkcmd%/*}" = "./script/update/blobs" ] && \
- printf "NOTE: ./update blobs is now: ./update vendor\n" 1>&2
[ -f "${lbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help"
"${lbmkcmd}" $@ || fail "execute_command: ${lbmkcmd} ${@}"
}
@@ -111,7 +104,7 @@ usage()
USAGE: ${progname} <MODE> <OPTION>
possible values for 'mode':
- $(listitems "${buildpath}")
+ $(items "${buildpath}")
For each of the above modes, you may also do:
${progname} <MODE> list
diff --git a/include/git.sh b/include/git.sh
index 7f926c28..9e6c60db 100755
--- a/include/git.sh
+++ b/include/git.sh
@@ -4,8 +4,7 @@
# This file is only used by update/project/trees
-eval "$(setvars "" _target rev _xm)"
-eval "$(setvars "" loc url bkup_url depend)"
+eval "$(setvars "" _target rev _xm loc url bkup_url depend)"
tmp_git_dir="${PWD}/tmp/gitclone"
fetch_project_trees()
diff --git a/include/mrc.sh b/include/mrc.sh
index 4ff067a9..3c6ac24e 100755
--- a/include/mrc.sh
+++ b/include/mrc.sh
@@ -4,7 +4,7 @@
# Modifications in this version are Copyright 2021 and 2023 Leah Rowe.
# Original copyright detailed in repo: https://review.coreboot.org/coreboot/
-eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board)"
+eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board ROOTFS SHELLBALL)"
extract_mrc()
{
@@ -12,14 +12,14 @@ extract_mrc()
[ -z "${CONFIG_MRC_FILE}" ] && \
err "extract_mrc $MRC_hash: CONFIG_MRC_FILE not set"
- _file="${MRC_url##*/}"
- _file="${_file%.zip}"
+ ROOTFS="root-a.ext2"
+ SHELLBALL="chromeos-firmwareupdate-${MRC_board}"
(
x_ cd "${appdir}"
- extract_partition ROOT-A "${_file}" root-a.ext2
- extract_shellball root-a.ext2 chromeos-firmwareupdate-${MRC_board}
- extract_coreboot chromeos-firmwareupdate-${MRC_board}
+ extract_partition
+ extract_shellball
+ extract_coreboot
)
x_ "${cbfstool}" "${appdir}/"coreboot-*.bin extract -n mrc.bin \
@@ -28,9 +28,9 @@ extract_mrc()
extract_partition()
{
- NAME=${1}
- FILE=${2}
- ROOTFS=${3}
+ NAME="ROOT-A"
+ FILE="${MRC_url##*/}"
+ FILE="${FILE%.zip}"
_bs=1024
printf "Extracting ROOT-A partition\n"
@@ -46,9 +46,6 @@ extract_partition()
extract_shellball()
{
- ROOTFS=${1}
- SHELLBALL=${2}
-
printf "Extracting chromeos-firmwareupdate\n"
printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" \
| debugfs "${ROOTFS}" || err "extract_shellball: debugfs"
@@ -56,13 +53,12 @@ extract_shellball()
extract_coreboot()
{
- _shellball=${1}
_unpacked=$( mktemp -d )
printf "Extracting coreboot image\n"
- [ -f "${_shellball}" ] || \
+ [ -f "${SHELLBALL}" ] || \
err "extract_coreboot: shellball missing in google cros image"
- x_ sh "${_shellball}" --unpack "${_unpacked}"
+ x_ sh "${SHELLBALL}" --unpack "${_unpacked}"
# TODO: audit the f* out of that shellball, for each mrc version.
# it has to be updated for each mrc update. we should ideally
diff --git a/include/option.sh b/include/option.sh
index 991ec0dc..73a567bb 100755
--- a/include/option.sh
+++ b/include/option.sh
@@ -17,11 +17,11 @@ eval "$(setvars "" CONFIG_BOARD_DELL_E6400 CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \
CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_SMSC_SCH5545_EC_FW_FILE \
CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE _dest board boarddir)"
-listitems()
+items()
{
rval=1
[ ! -d "${1}" ] && \
- printf "listitems: directory '%s' doesn't exist" "${1}" && \
+ printf "items: directory '%s' doesn't exist" "${1}" && \
return 1
for x in "${1}/"*; do
# -e used because this is for files *or* directories
diff --git a/script/build/fw/coreboot b/script/build/fw/coreboot
index 9e266ce7..8853f749 100755
--- a/script/build/fw/coreboot
+++ b/script/build/fw/coreboot
@@ -25,15 +25,14 @@ pv="${pv} payload_seabios_withgrub payload_uboot memtest_bin"
v="romdir cbrom initmode displaymode cbcfg targetdir tree arch"
v="${v} grub_timeout ubdir vendorfiles board grub_scan_disk uboot_config"
eval "$(setvars "n" ${pv})"
-eval "$(setvars "" ${v})"
-eval "$(setvars "" boards _displaymode _payload _keyboard all targets)"
+eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
main()
{
while [ $# -gt 0 ]; do
case ${1} in
help) usage && exit 0 ;;
- list) listitems config/coreboot && exit 0 ;;
+ list) items config/coreboot && exit 0 ;;
-d) _displaymode="${2}" ;;
-p) _payload="${2}" ;;
-k) _keyboard="${2}" ;;
@@ -45,7 +44,7 @@ main()
shift 2
done
- [ "${all}" != "y" ] || boards=$(listitems config/coreboot) || \
+ [ "${all}" != "y" ] || boards=$(items config/coreboot) || \
err "Cannot generate list of boards for building"
for x in ${boards}; do
@@ -63,11 +62,7 @@ main()
printf "\nROM images available in these directories:\n"
printf "${targets}^^ ROM images available in these directories.\n\n"
- printf "WARNING!!!!!!! PLEASE READ:\n\n"
-
- printf "DO NOT flash ROM images contained under elf/, because they lack"
- printf " payloads and will BRICK your machine. Please flash ROM images"
- printf " contained under bin/ instead. YOU HAVE BEEN WARNED.\n\n"
+ printf "DO NOT flash ROM images from elf/ - please use bin/ instead.\n"
}
check_target()
@@ -151,13 +146,12 @@ prepare_target()
build_dependency_seabios()
{
[ "${payload_seabios}" = "y" ] || return 0
+ [ -f "${seavgabiosrom}" ] && \
+ [ -f elf/seabios/default/libgfxinit/bios.bin.elf ] && \
+ [ -f elf/seabios/default/vgarom/bios.bin.elf ] && \
+ [ -f elf/seabios/default/normal/bios.bin.elf ] && return 0
- if [ ! -f "${seavgabiosrom}" ] \
- || [ ! -f elf/seabios/default/libgfxinit/bios.bin.elf ] \
- || [ ! -f elf/seabios/default/vgarom/bios.bin.elf ] \
- || [ ! -f elf/seabios/default/normal/bios.bin.elf ]; then
- x_ ./update project trees -b seabios
- fi
+ x_ ./update project trees -b seabios
}
build_dependency_grub()
@@ -413,7 +407,7 @@ usage()
./build fw coreboot x60 -p grub -d corebootfb -k usqwerty
possible values for 'target':
- $(listitems "config/coreboot")
+ $(items "config/coreboot")
Refer to the ${projectname} documentation for more information.
EOF
diff --git a/script/update/project/trees b/script/update/project/trees
index c8643966..7ba9a38b 100755
--- a/script/update/project/trees
+++ b/script/update/project/trees
@@ -87,7 +87,7 @@ build_targets()
[ $# -gt 0 ] && target1="${1}"
[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && \
shift 1
- targets=$(listitems "${cfgsdir}") || \
+ targets=$(items "${cfgsdir}") || \
err "Cannot get options for ${cfgsdir}"
[ $# -gt 0 ] && targets=$@
@@ -173,15 +173,14 @@ handle_src_tree()
fi
[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && return 0
+ [ "$project" != "coreboot" ] && [ "$project" != "u-boot" ] && return 0
# u-boot and coreboot are both compiled with coreboot's crossgcc
- if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then
- [ ! -z ${mode} ] || check_cross_compiler || \
- err "handle_src_tree ${project}/${target}: crossgcc"
- cbfstool="cbutils/${tree}/cbfstool"
- [ -f "${cbfstool}" ] || \
- x_ ./update project trees -b coreboot utils "${tree}"
- fi
+ [ ! -z ${mode} ] || check_cross_compiler || \
+ err "handle_src_tree ${project}/${target}: crossgcc"
+ cbfstool="cbutils/${tree}/cbfstool"
+ [ -f "${cbfstool}" ] && return 0
+ x_ ./update project trees -b coreboot utils "${tree}"
}
# set up cross-compiler (coreboot crossgcc) for u-boot and coreboot
@@ -279,6 +278,7 @@ run_make_command()
x_ printf "%s\n" "${version%%-*}" >"${codedir}/.coreboot-version"
x_ make ${mode} -j$(nproc) -C "${codedir}"
+
[ "${mode}" != "clean" ] && return 0
make -C "${codedir}" distclean 2>/dev/null || :
}
diff --git a/script/update/vendor/download b/script/update/vendor/download
index 87e9d3a5..b5618c3b 100755
--- a/script/update/vendor/download
+++ b/script/update/vendor/download
@@ -63,9 +63,8 @@ build_dependencies()
x_ ./update project trees -b uefitool
[ -f "${kbc1126_ec_dump}" ] || \
x_ make -C "${cbdir}/util/kbc1126"
- if [ ! -f "${cbfstool}" ] || [ ! -f "${ifdtool}" ]; then
- x_ ./update project trees -b coreboot utils default
- fi
+ [ -f "${cbfstool}" ] && [ -f "${ifdtool}" ] && return 0
+ x_ ./update project trees -b coreboot utils default
}
download_vendorfiles()
@@ -85,8 +84,7 @@ download_vendorfiles()
"${E6400_VGA_DL_url_bkup}" "${E6400_VGA_DL_hash}" \
"${CONFIG_VGA_BIOS_FILE}"
[ -z "${CONFIG_HAVE_MRC}" ] && return 0
- fetch "mrc" "${MRC_url}" "${MRC_url_bkup}" "${MRC_hash}" \
- "${CONFIG_MRC_FILE}"
+ fetch "mrc" "$MRC_url" "$MRC_url_bkup" "$MRC_hash" "$CONFIG_MRC_FILE"
}
fetch()
diff --git a/script/update/vendor/inject b/script/update/vendor/inject
index c4a7f702..d156be25 100755
--- a/script/update/vendor/inject
+++ b/script/update/vendor/inject
@@ -15,7 +15,7 @@ main()
{
[ $# -lt 1 ] && err "No options specified."
[ "${1}" = "listboards" ] && \
- listitems config/coreboot && exit 0
+ items config/coreboot && exit 0
archive="${1}"