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 | |
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>
-rwxr-xr-x | fetch_trees | 12 | ||||
-rwxr-xr-x | lbmk | 35 | ||||
-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 |
6 files changed, 52 insertions, 72 deletions
diff --git a/fetch_trees b/fetch_trees index d61eb102..3c33beb0 100755 --- a/fetch_trees +++ b/fetch_trees @@ -51,17 +51,11 @@ main() [ -d "${cfgsdir}" ] || err "unsupported project name" shift 1 - targets="" - if [ $# -gt 0 ]; then - targets=$@ - else - for x in "${cfgsdir}/"*; do - [ -d "${x}" ] || continue - targets="${targets} ${x##*/}" - done - fi + targets=$(./build command options "${cfgsdir}") + [ $# -gt 0 ] && targets=$@ [ -z "${targets}" ] && \ err "No targets available for project: ${project}" + for x in ${targets}; do rm -f "${cfgsdir}"/*/seen || err_rm_seen "main 2" download_for_target "${x}" || \ @@ -48,6 +48,8 @@ main() ./.gitcheck || err "/.gitcheck call from main, in /lbmk" [ "${mode}" = "help" ] && usage ${0} && exit 0 + [ "${mode}" = "list" ] && ./build command options "${buildpath}" && \ + exit 0 [ $# -lt 2 ] && usage ${0} && exit 1 if [ "${mode}" = "dependencies" ]; then @@ -63,10 +65,10 @@ main() case "${option}" in list) - printf "Options for mode '%s':\n\n" ${mode} - listoptions "${mode}" ;; + ./build command options "${buildpath}/${mode}" ;; all) - for option in $(listoptions "${mode}"); do + for option in $(./build command options "${buildpath}/${mode}") + do "${buildpath}/${mode}/${option}" $@ || \ err "script fail: ${buildpath}/${mode}/${option} $@" done @@ -99,19 +101,6 @@ install_dependencies() printf "You must install AUR packages: %s\n" "${aur_notice}" 1>&2 } -# Takes exactly one mode as parameter -listoptions() -{ - options="n" - for option in "${buildpath}/${1}/"*; do - [ -f "${option}" ] || continue - printf '%s\n' ${option##*/} - options="y" - done - [ "${options}" = "y" ] || \ - err "listoptions: No scripts present in directory ${buildpath}/${1}" -} - usage() { progname=${0} @@ -119,7 +108,7 @@ usage() USAGE: ${progname} <MODE> <OPTION> possible values for 'mode': - $(listmodes) + $(./build command options "${buildpath}/${mode}") Example: ${progname} module all Example: ${progname} module flashrom [static] @@ -130,16 +119,4 @@ usage() EOF } -listmodes() -{ - modes="n" - for mode in "${buildpath}"/*; do - [ -d "${mode}" ] || continue - printf '%s\n' ${mode##*/} - modes="y" - done - [ "${modes}" = "y" ] || \ - err "listmodes: No directories present in directory ${buildpath}" -} - main $@ 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 |