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>btrfsvols
parent
93d2dcad2d
commit
9457d6be52
12
fetch_trees
12
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}" || \
|
||||
|
|
35
lbmk
35
lbmk
|
@ -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 $@
|
||||
|
|
|
@ -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}/" ] || \
|
||||
|
|
|
@ -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 $@
|
|
@ -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}"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue