diff options
author | Leah Rowe <leah@libreboot.org> | 2023-08-27 14:14:49 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-08-27 14:24:20 +0100 |
commit | 9457d6be52e5f409566dabc10dd5435102b2e760 (patch) | |
tree | 175385fc7d0922e0ea0a318a90d5e7f0a4731f56 /resources | |
parent | 93d2dcad2d8b03eab613404e8c7c4209f250c70d (diff) |
unified list command for all scripts
e.g. ./build boot roms list
./update blobs inject listboards
./build boot list
./build clean list
also this is now possible:
./build list
or maybe
./update list
^ would list directories in resources/scripts/build
and resources/scripts/update respectively
this script is added:
resources/scripts/build/command/options
call it like so, e.g.
./build command options resources/coreboot
this script is now used, for list functions in
other scripts.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'resources')
-rwxr-xr-x | resources/scripts/build/boot/roms | 23 | ||||
-rwxr-xr-x | resources/scripts/build/command/options | 31 | ||||
-rwxr-xr-x | resources/scripts/handle/make/config | 10 | ||||
-rwxr-xr-x | resources/scripts/update/blobs/inject | 13 |
4 files changed, 43 insertions, 34 deletions
diff --git a/resources/scripts/build/boot/roms b/resources/scripts/build/boot/roms index 0aedfdb1..a19d9445 100755 --- a/resources/scripts/build/boot/roms +++ b/resources/scripts/build/boot/roms @@ -42,7 +42,8 @@ main() firstoption="${1}" [ "${firstoption}" = "help" ] && usage && exit 0 - [ "${firstoption}" = "list" ] && listboards && exit 0 + [ "${firstoption}" = "list" ] && \ + ./build command options resources/coreboot && exit 0 while [ $# -gt 0 ]; do case ${1} in @@ -65,8 +66,8 @@ main() printf "Building %s ROM images\n" "${projectname}" if [ "${firstoption}" = "all" ]; then - for boardname in $(listboards); do - buildrom "${boardname}" || err "build/roms (1): error" + for target in $(./build command options resources/coreboot); do + buildrom "${target}" || err "build/roms (1): error" done else for board in ${boards}; do @@ -80,7 +81,7 @@ main() usage() { cat <<- EOF - USAGE: ./build boot roms boardname + USAGE: ./build boot roms target To build *all* boards, do this: ./build boot roms all To list *all* boards, do this: ./build boot roms list @@ -94,23 +95,13 @@ usage() ./build boot roms x200_8mb x60 ./build boot roms x60 -p grub -d corebootfb -k usqwerty - possible values for 'boardname': - $(listboards) + possible values for 'target': + $(./build command options "resources/coreboot") Refer to the ${projectname} documentation for more information. EOF } -listboards() -{ - for boarddir in resources/coreboot/*; do - [ -d "${boarddir}" ] || continue - board="${boarddir##resources/coreboot/}" - board="${board%/}" - printf '%s\n' "${board##*/}" - done -} - # Build ROM images for supported boards buildrom() { [ -d "resources/coreboot/${1}/" ] || \ diff --git a/resources/scripts/build/command/options b/resources/scripts/build/command/options new file mode 100755 index 00000000..84a9a3fb --- /dev/null +++ b/resources/scripts/build/command/options @@ -0,0 +1,31 @@ +#!/usr/bin/env sh + +# Copyright (c) 2023 Leah Rowe <info@minifree.org> +# SPDX-License-Identifier: MIT + +. "include/err.sh" + +items=1 + +main() +{ + [ $# -gt 0 ] || \ + err "No argument given" + listitems "${1}" || err "No items present under: ${1}" +} + +listitems() +{ + [ -d "${1}" ] || \ + err "Directory not does exist: ${1}" + for x in "${1}/"*; do + # -e used because this is for files *or* directories + [ -e "${x}" ] || continue + [ "${x##*/}" = "build.list" ] && continue + printf "%s\n" "${x##*/}" + items=0 + done + return ${items} +} + +main $@ diff --git a/resources/scripts/handle/make/config b/resources/scripts/handle/make/config index 1ab0864b..0c60285f 100755 --- a/resources/scripts/handle/make/config +++ b/resources/scripts/handle/make/config @@ -76,17 +76,13 @@ main() [ -f "${listfile}" ] || fail "list file, ${listfile}, does not exist" # Build for all targets if no argument is given - if [ "$#" -eq 0 ]; then - for target_dir in "${cfgsdir}"/*; do - [ -d "${target_dir}/config/" ] || continue - set -- "$@" "${target_dir#${cfgsdir}/}" - done - fi + targets=$(./build command options "${cfgsdir}") + [ $# -gt 0 ] && targets=$@ [ -d "${elfdir}" ] || [ "${mode}" != "all" ] || \ mkdir -p "${elfdir}/" || fail "can't create directory ${elfdir}" - for x in "$@"; do + for x in ${targets}; do target="${x}" printf "Running 'make %s' for project '%s, target '%s''\n" \ "${mode}" "${project}" "${target}" diff --git a/resources/scripts/update/blobs/inject b/resources/scripts/update/blobs/inject index 3cdf38c6..bc6b55c9 100755 --- a/resources/scripts/update/blobs/inject +++ b/resources/scripts/update/blobs/inject @@ -44,7 +44,8 @@ main() sname="${0}" [ $# -lt 1 ] && err "No options specified." - [ "${1}" = "listboards" ] && listboards && exit 0 + [ "${1}" = "listboards" ] && \ + ./build command options resources/coreboot && exit 0 archive="${1}" @@ -345,16 +346,6 @@ modify_gbe() rm -f "${_gbe_tmp}" } -listboards() -{ - for boarddir in "${cbcfgsdir}"/*; do - [ -d "${boarddir}" ] || continue - board="${boarddir##${cbcfgsdir}/}" - board="${board%/}" - printf "%s\n" "${board##*/}" - done -} - usage() { cat <<- EOF |