diff --git a/build b/build index 8341cd5..3a93e03 100755 --- a/build +++ b/build @@ -14,6 +14,7 @@ export LC_ALL=C . "include/option.sh" eval "$(setvars "" option aur_notice tmpdir)" +err="fail" tmpdir_was_set="y" set | grep TMPDIR 1>/dev/null 2>/dev/null || tmpdir_was_set="n" @@ -35,10 +36,10 @@ buildpath="./script/${linkname}" main() { - xx_ id -u 1>/dev/null 2>/dev/null - [ $# -lt 1 ] && fail "Too few arguments. Try: ${0} help" + x_ id -u 1>/dev/null 2>/dev/null + [ $# -lt 1 ] && $err "Too few arguments. Try: ${0} help" - [ "$1" = "dependencies" ] && xx_ install_packages $@ && cbmk_exit 0 + [ "$1" = "dependencies" ] && x_ install_packages $@ && cbmk_exit 0 for cmd in initcmd check_git check_project git_init excmd; do eval "${cmd} \$@" @@ -48,7 +49,7 @@ main() initcmd() { - [ "$(id -u)" != "0" ] || fail "this command as root is not permitted" + [ "$(id -u)" != "0" ] || $err "this command as root is not permitted" check_project @@ -69,14 +70,14 @@ install_packages() printf "You must specify a distro, namely:\n" 1>&2 printf "Look at files under config/dependencies/\n" 1>&2 printf "Example: ./build dependencies debian\n" 1>&2 - fail "install_packages: target not specified" + $err "install_packages: target not specified" fi - [ -f "config/dependencies/${2}" ] || fail "Unsupported target" + [ -f "config/dependencies/${2}" ] || $err "Unsupported target" . "config/dependencies/${2}" - xx_ ${pkg_add} ${pkglist} + x_ ${pkg_add} ${pkglist} [ -z "${aur_notice}" ] && return 0 printf "You must install AUR packages: %s\n" "$aur_notice" 1>&2 } @@ -85,24 +86,24 @@ install_packages() # cbmk can be run from cbmk.git, or an archive. git_init() { - [ -L ".git" ] && fail "Reference .git is a symlink" + [ -L ".git" ] && $err "Reference .git is a symlink" [ -e ".git" ] && return 0 eval "$(setvars "$(date -Rd @${versiondate})" cdate _nogit)" - git init || fail "${PWD}: cannot initialise Git repository" - git add -A . || fail "${PWD}: cannot add files to Git repository" + git init || $err "${PWD}: cannot initialise Git repository" + git add -A . || $err "${PWD}: cannot add files to Git repository" git commit -m "${projectname} ${version}" --date "${cdate}" \ --author="cbmk " || \ - fail "$PWD: can't commit ${projectname}/${version}, date $cdate" + $err "$PWD: can't commit ${projectname}/${version}, date $cdate" git tag -a "${version}" -m "${projectname} ${version}" || \ - fail "${PWD}: cannot git-tag ${projectname}/${version}" + $err "${PWD}: cannot git-tag ${projectname}/${version}" } excmd() { cbmkcmd="${buildpath}/${option}" - [ -f "${cbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help" - shift 1; "$cbmkcmd" $@ || fail "excmd: ${cbmkcmd} ${@}" + [ -f "${cbmkcmd}" ] || $err "Invalid command. Run: ${linkpath} help" + shift 1; "$cbmkcmd" $@ || $err "excmd: ${cbmkcmd} ${@}" } usage() @@ -131,14 +132,14 @@ mkversion() cbmk_exit() { - tmp_cleanup || err "cbmk_exit: can't rm tmpdir upon exit $1: $tmpdir" + tmp_cleanup || err_ "cbmk_exit: can't rm tmpdir upon exit $1: $tmpdir" exit $1 } fail() { tmp_cleanup || printf "WARNING: can't rm tmpdir: %s\n" "$tmpdir" 1>&2 - err "${1}" + err_ "${1}" } tmp_cleanup() diff --git a/include/err.sh b/include/err.sh index cab81d0..5b66c99 100755 --- a/include/err.sh +++ b/include/err.sh @@ -2,19 +2,10 @@ # SPDX-FileCopyrightText: 2022, 2023 Leah Rowe version=""; versiondate=""; projectname=""; _nogit="" +err="err_" x_() { - [ $# -lt 1 ] || ${@} || err_exit err ${@} -} -xx_() { - [ $# -lt 1 ] || ${@} || err_exit fail ${@} -} - -err_exit() -{ - _fail="${1}" && shift 1 - echo "Non-zero exit: $@" - $_fail "Unhandled error" + [ $# -lt 1 ] || ${@} || $err "Unhandled non-zero exit: $@"; return 0 } check_git() @@ -30,8 +21,7 @@ check_git() git_err() { printf "You need to set git name/email, like so:\n%s\n\n" "$1" 1>&2 - fail "Git name/email not configured" || \ - err "Git name/email not configured" + $err "Git name/email not configured" } check_project() @@ -49,9 +39,8 @@ check_project() --pretty='%ct' HEAD)" || versiondate="${versiondate_}" for p in projectname version versiondate; do - eval "[ -n \"\$$p\" ] || fail \"$p unset\" || err \"$p unset\"" - p_="x_ printf \"%s\\n\" \"\$$p\" > $p" - eval "x$p_ || $p_" + eval "[ -n \"\$$p\" ] || $err \"$p unset\"" + eval "x_ printf \"%s\\n\" \"\$$p\" > $p" done export LOCALVERSION="-${projectname}-${version%%-*}" } @@ -59,7 +48,7 @@ check_project() setvars() { _setvars="" - [ $# -lt 2 ] && err "setvars: too few arguments" + [ $# -lt 2 ] && $err "setvars: too few arguments" val="${1}" && shift 1 for var in $@; do _setvars="${var}=\"${val}\"; ${_setvars}" @@ -67,7 +56,7 @@ setvars() printf "%s\n" "${_setvars% }" } -err() +err_() { printf "ERROR %s: %s\n" "${0}" "${1}" 1>&2 exit 1 diff --git a/include/git.sh b/include/git.sh index 50f3e42..2879334 100755 --- a/include/git.sh +++ b/include/git.sh @@ -29,7 +29,7 @@ fetch_from_upstream() fetch_config() { - rm -f "${cfgsdir}/"*/seen || err "fetch_config ${cfgsdir}: !rm seen" + rm -f "${cfgsdir}/"*/seen || $err "fetch_config ${cfgsdir}: !rm seen" eval "$(setvars "" xtree tree_depend)" while true; do eval "$(setvars "" rev tree)" @@ -44,12 +44,12 @@ fetch_config() load_target_config() { - [ -f "$cfgsdir/$1/target.cfg" ] || err "$1: target.cfg missing" + [ -f "$cfgsdir/$1/target.cfg" ] || $err "$1: target.cfg missing" [ -f "${cfgsdir}/${1}/seen" ] && \ - err "${_xm} check: infinite loop in tree definitions" + $err "${_xm} check: infinite loop in tree definitions" - . "$cfgsdir/$1/target.cfg" || err "load_target_config !$cfgsdir/$1" - touch "$cfgsdir/$1/seen" || err "load_config $cfgsdir/$1: !mk seen" + . "$cfgsdir/$1/target.cfg" || $err "load_target_config !$cfgsdir/$1" + touch "$cfgsdir/$1/seen" || $err "load_config $cfgsdir/$1: !mk seen" } prepare_new_tree() @@ -57,7 +57,7 @@ prepare_new_tree() printf "Creating %s tree %s (%s)\n" "$project" "$tree" "$_target" cp -R "src/${project}/${project}" "${tmpgit}" || \ - err "prepare_new_tree ${project}/${tree}: can't make tmpclone" + $err "prepare_new_tree ${project}/${tree}: can't make tmpclone" git_prep "$PWD/$cfgsdir/$tree/patches" "src/$project/$tree" "update" nukeblobs "$project/$tree" "$project/$tree" } @@ -66,15 +66,15 @@ fetch_project_repo() { eval "$(setvars "" xtree tree_depend)" - scan_config "${project}" "config/git" "err" - [ -z "${loc+x}" ] && err "fetch_project_repo $project: loc not set" - [ -z "${url+x}" ] && err "fetch_project_repo $project: url not set" + scan_config "${project}" "config/git" + [ -z "${loc+x}" ] && $err "fetch_project_repo $project: loc not set" + [ -z "${url+x}" ] && $err "fetch_project_repo $project: url not set" clone_project [ -z "${depend}" ] || for d in ${depend} ; do x_ ./update trees -f ${d} done - rm -Rf "${tmpgit}" || err "fetch_repo: !rm -Rf ${tmpgit}" + rm -Rf "${tmpgit}" || $err "fetch_repo: !rm -Rf ${tmpgit}" for x in config/git/*; do [ -f "${x}" ] && nukeblobs "${x##*/}" "src/${x##*/}"; continue @@ -91,7 +91,7 @@ clone_project() fi git clone $url "$tmpgit" || git clone $bkup_url "$tmpgit" \ - || err "clone_project: could not download ${project}" + || $err "clone_project: could not download ${project}" git_prep "$PWD/config/$project/patches" "$loc" } @@ -100,26 +100,26 @@ git_prep() _patchdir="$1" _loc="$2" - [ -z "${rev+x}" ] && err "git_prep $_loc: rev not set" - git -C "$tmpgit" reset --hard $rev || err "git -C $_loc: !reset $rev" - git_am_patches "$tmpgit" "$_patchdir" || err "!am $_loc $_patchdir" + [ -z "${rev+x}" ] && $err "git_prep $_loc: rev not set" + git -C "$tmpgit" reset --hard $rev || $err "git -C $_loc: !reset $rev" + git_am_patches "$tmpgit" "$_patchdir" || $err "!am $_loc $_patchdir" if [ "$project" != "coreboot" ] || [ $# -gt 2 ]; then [ ! -f "$tmpgit/.gitmodules" ] || git -C "$tmpgit" submodule \ - update --init --checkout || err "git_prep $_loc: !submod" + update --init --checkout || $err "git_prep $_loc: !submod" if [ "$project" = "coreboot" ] && [ -n "$xtree" ] && \ [ "$xtree" != "$tree" ]; then ( - cd "$tmpgit/util" || err "prep $_loc: !cd $tmpgit/util" - rm -Rf crossgcc || err "prep $_loc: !rm xgcc" + cd "$tmpgit/util" || $err "prep $_loc: !cd $tmpgit/util" + rm -Rf crossgcc || $err "prep $_loc: !rm xgcc" ln -s "../../$xtree/util/crossgcc" crossgcc || \ - err "prep $_loc: can't create xgcc symlink" - ) || err "prep $_loc: can't create xgcc symlink" + $err "prep $_loc: can't create xgcc symlink" + ) || $err "prep $_loc: can't create xgcc symlink" fi fi [ "$_loc" = "${_loc%/*}" ] || x_ mkdir -p "${_loc%/*}" - mv "$tmpgit" "$_loc" || err "git_prep: !mv $tmpgit $_loc" + mv "$tmpgit" "$_loc" || $err "git_prep: !mv $tmpgit $_loc" [ -n "$xtree" ] && [ ! -d "src/coreboot/$xtree" ] && \ x_ ./update project trees -f coreboot "$xtree"; return 0 } @@ -128,7 +128,7 @@ git_am_patches() { for _patch in "$2/"*; do [ -L "$_patch" ] || [ ! -f "$_patch" ] || git -C "$1" am \ - "$_patch" || err "git_am $1 $2: !git am $_patch"; continue + "$_patch" || $err "git_am $1 $2: !git am $_patch"; continue done for _patches in "$2/"*; do [ ! -L "$_patches" ] && [ -d "$_patches" ] && \ @@ -156,7 +156,7 @@ nukeblobs() [ -e "${rmf}" ] || continue del="y" rm -Rf "${rmf}" || \ - err "nukeblobs ${pjcfgdir}/blobs: can't rm \"${blobfile}\"" + $err "nukeblobs ${pjcfgdir}/blobs: can't rm \"${blobfile}\"" printf "nukeblobs %s: deleted \"%s\"\n" "${pjcfgdir}" "${rmf}" done < "config/${pjcfgdir}/blobs.list" diff --git a/include/option.sh b/include/option.sh index dd53602..3dc9db4 100755 --- a/include/option.sh +++ b/include/option.sh @@ -35,10 +35,9 @@ scan_config() { awkstr=" /\{.*${1}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" confdir="${2}" - _fail="${3}" revfile="$(mktemp -t sources.XXXXXXXXXX)" cat "${confdir}/"* > "${revfile}" || \ - "${_fail}" "scan_config ${confdir}: Cannot concatenate files" + $err "scan_config ${confdir}: Cannot concatenate files" while read -r line ; do set ${line} 1>/dev/null 2>/dev/null || : if [ "${1%:}" = "depend" ]; then @@ -49,7 +48,7 @@ scan_config() done << EOF $(eval "awk '${awkstr}' \"${revfile}\"") EOF - rm -f "$revfile" || "$_fail" "scan_config: Cannot remove tmpfile" + rm -f "$revfile" || $err "scan_config: Cannot remove tmpfile" } check_defconfig() @@ -73,6 +72,6 @@ handle_coreboot_utils() remkdir() { - rm -Rf "${1}" || err "remkdir: !rm -Rf \"${1}\"" - mkdir -p "${1}" || err "remkdir: !mkdir -p \"${1}\"" + rm -Rf "${1}" || $err "remkdir: !rm -Rf \"${1}\"" + mkdir -p "${1}" || $err "remkdir: !mkdir -p \"${1}\"" } diff --git a/script/build/roms b/script/build/roms index 9e7c69e..a90e1da 100755 --- a/script/build/roms +++ b/script/build/roms @@ -49,7 +49,7 @@ main() done [ "${all}" != "y" ] || boards=$(items config/coreboot) || \ - err "Cannot generate list of boards for building" + $err "Cannot generate list of boards for building" for x in ${boards}; do eval "$(setvars "n" ${pv}) $(setvars "" ${v})" @@ -62,7 +62,7 @@ main() targets="* bin/${board}\n${targets}" done - [ -z "${targets}" ] && err "No ROM images were compiled" + [ -z "${targets}" ] && $err "No ROM images were compiled" printf "\nROM images available in these directories:\n" eval "printf \"${targets}\"" printf "^^ ROM images available in these directories.\n\n" @@ -74,7 +74,7 @@ configure_target() { targetdir="${cfgsdir}/${board}" [ -f "${targetdir}/target.cfg" ] || \ - err "Missing target.cfg for target: ${board}" + $err "Missing target.cfg for target: ${board}" # Override the above defaults using target.cfg . "${targetdir}/target.cfg" @@ -84,7 +84,7 @@ configure_target() && [ "${grub_scan_disk}" != "ahci" ] && \ grub_scan_disk="both" - [ -z "$tree" ] && err "$board: tree not defined" + [ -z "$tree" ] && $err "$board: tree not defined" [ "${payload_memtest}" != "y" ] && payload_memtest="n" [ "${payload_grub_withseabios}" = "y" ] && payload_grub="y" @@ -101,7 +101,7 @@ configure_target() [ "${payload_uboot}" != "y" ] && \ for configfile in "${targetdir}/config/"*; do [ -e "${configfile}" ] || continue - err "target '${board}' defines no payload" + $err "target '${board}' defines no payload" done [ "$payload_uboot" != "n" ] && [ "$payload_uboot" != "y" ] && \ @@ -149,7 +149,7 @@ build_grub_payload() keymaps="${keymaps} ${keymapfile}" done [ -z "$_keyboard" ] || [ -f "$grubcfgsdir/keymap/$_keyboard.gkb" ] || \ - err "build_grub_payload: $_keyboard layout not defined" + $err "build_grub_payload: $_keyboard layout not defined" [ -n "$_keyboard" ] && keymaps="${grubcfgsdir}/keymap/${_keyboard}.gkb" [ -f "$grubelf" ] && return 0 [ -f "src/grub/grub-mkstandalone" ] || x_ ./update trees -b grub @@ -164,7 +164,7 @@ build_grub_payload() --install-modules="${grub_install_modules}" \ "/boot/grub/grub.cfg=${grubcfgsdir}/config/grub_memdisk.cfg" \ "/boot/grub/grub_default.cfg=${grubcfgsdir}/config/grub.cfg" || \ - err "could not generate grub.elf" + $err "could not generate grub.elf" } build_uboot_payload() @@ -175,12 +175,12 @@ build_uboot_payload() [ ! -f "${ubootelf}" ] && [ -f "${ubdir}/u-boot" ] && \ ubootelf="${ubdir}/u-boot" [ -f "${ubootelf}" ] && return 0 - err "Can't find u-boot build for board, $board"; + $err "Can't find u-boot build for board, $board"; } build_target_mainboard() { - rm -f "${romdir}/"* || err "!prepare, rm files, ${romdir}" + rm -f "${romdir}/"* || $err "!prepare, rm files, ${romdir}" for x in "normal" "vgarom" "libgfxinit"; do initmode="${x}" @@ -237,7 +237,7 @@ build_seabios_roms() x_ build_grub_roms "${t}" "seabios_withgrub" else t=$(mkSeabiosRom "${cbrom}" "fallback/payload") || \ - err "build_seabios_roms: cannot build tmprom" + $err "build_seabios_roms: cannot build tmprom" newrom="${romdir}/seabios_${board}_${initmode}_${displaymode}" [ "${initmode}" = "normal" ] && newrom="${romdir}/seabios" \ && newrom="${newrom}_${board}_${initmode}" @@ -256,13 +256,13 @@ build_grub_roms() if [ "$payload1" = "grub" ] && [ "$payload_grub_withseabios" = "y" ] then _tmpmvrom=$(mkSeabiosRom "$tmprom" "seabios.elf") || \ - err "build_grub_roms 1 $board: can't build tmprom" + $err "build_grub_roms 1 $board: can't build tmprom" x_ mv "$_tmpmvrom" "$tmprom" elif [ "$payload1" != "grub" ] && [ "$payload_seabios_withgrub" = "y" ] then grub_cbfs="img/grub2" _tmpmvrom=$(mkSeabiosRom "$tmprom" fallback/payload) || \ - err "build_grub_roms 2 $board: can't build tmprom" + $err "build_grub_roms 2 $board: can't build tmprom" x_ mv "$_tmpmvrom" "$tmprom" fi @@ -276,16 +276,16 @@ build_grub_roms() backgroundfile="config/grub/background/${grub_background}" "${cbfstool}" "${tmprom}" add -f ${backgroundfile} \ -n background.png -t raw || \ - err "insert background, ${backgroundfile}" + $err "insert background, ${backgroundfile}" fi tmpcfg=$(mktemp -t coreboot_rom.XXXXXXXXXX) printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" >"$tmpcfg" \ - || err "set grub_scandisk, $grub_scan_disk, $tmpcfg" + || $err "set grub_scandisk, $grub_scan_disk, $tmpcfg" [ "${grub_scan_disk}" = "both" ] || \ x_ "$cbfstool" "$tmprom" add -f "$tmpcfg" -n scan.cfg -t raw printf "set timeout=%s\n" "${grub_timeout}" > "${tmpcfg}" || \ - err "set timeout, ${grub_timeout}, ${tmpcfg}" + $err "set timeout, ${grub_timeout}, ${tmpcfg}" [ -z "${grub_timeout}" ] || x_ "${cbfstool}" "${tmprom}" add \ -f "${tmpcfg}" -n timeout.cfg -t raw x_ rm -f "${tmpcfg}" @@ -344,7 +344,7 @@ mkSeabiosGrubonlyRom() tmpbootorder=$(mktemp -t coreboot_rom.XXXXXXXXXX) # only load grub, by inserting a custom bootorder file - printf "/rom@img/grub2\n" > "$tmpbootorder" || err "printf bootorder" + printf "/rom@img/grub2\n" > "$tmpbootorder" || $err "printf bootorder" x_ "${cbfstool}" "${_grubrom}" \ add -f "${tmpbootorder}" -n bootorder -t raw x_ rm -f "${tmpbootorder}" @@ -356,7 +356,7 @@ mkSeabiosGrubonlyRom() build_uboot_roms() { tmprom=$(mkUbootRom "${cbrom}" "fallback/payload") || \ - err "build_uboot_roms $board: could not create tmprom" + $err "build_uboot_roms $board: could not create tmprom" newrom="${romdir}/uboot_payload_${board}_${initmode}_${displaymode}.rom" x_ moverom "${tmprom}" "${newrom}" x_ rm -f "${tmprom}" @@ -370,7 +370,7 @@ mkUbootRom() { _ubdir="elf/u-boot/${board}/${uboot_config}" _ubootelf="${_ubdir}/u-boot.elf" [ -f "${_ubootelf}" ] || _ubootelf="${_ubdir}/u-boot" - [ -f "$_ubootelf" ] || err "mkUbootRom: $board: cant find u-boot" + [ -f "$_ubootelf" ] || $err "mkUbootRom: $board: cant find u-boot" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) diff --git a/script/build/serprog b/script/build/serprog index 8b003ad..ea2c02b 100755 --- a/script/build/serprog +++ b/script/build/serprog @@ -17,8 +17,8 @@ usage="usage: ./build firmware serprog [board]" main() { - [ -z "${1+x}" ] && err "${usage}" - [ "$1" != "rp2040" ] && [ "$1" != "stm32" ] && err "$usage" + [ -z "${1+x}" ] && $err "${usage}" + [ "$1" != "rp2040" ] && [ "$1" != "stm32" ] && $err "$usage" if [ "${1}" = "rp2040" ]; then boards_dir=${pico_sdk_dir}/src/boards/include/boards [ -d "$pico_src_dir" ] || x_ ./update trees -f "pico-serprog" @@ -71,7 +71,7 @@ print_boards() list_boards() { - basename -a -s .h "${1}/"*.h || err "list_boards $1: can't list boards" + basename -a -s .h "${1}/"*.h || $err "list_boards $1: can't list boards" } main $@ diff --git a/script/update/release b/script/update/release index 65745f4..44d400f 100755 --- a/script/update/release +++ b/script/update/release @@ -13,11 +13,11 @@ main() { vdir="release" while getopts d:m: option; do - [ -z "${OPTARG}" ] && err "Empty argument not allowed" + [ -z "${OPTARG}" ] && $err "Empty argument not allowed" case "${option}" in d) vdir="${OPTARG}" ;; m) mode="${OPTARG}" ;; - *) err "Invalid option" ;; + *) $err "Invalid option" ;; esac done @@ -29,7 +29,7 @@ main() src_dirname="${relname}_src" srcdir="${vdir}/${src_dirname}" - [ -e "${vdir}" ] && err "already exists: \"${vdir}\"" + [ -e "${vdir}" ] && $err "already exists: \"${vdir}\"" mkvdir build_release @@ -39,45 +39,45 @@ main() mkvdir() { - mkdir -p "${vdir}" || err "mkvdir: !mkdir -p \"${vdir}\"" - git clone . "${srcdir}" || err "mkdir: !gitclone \"${srcdir}\"" - insert_version_files "$srcdir" || err "mkvdir $srcdir: versionfile" + mkdir -p "${vdir}" || $err "mkvdir: !mkdir -p \"${vdir}\"" + git clone . "${srcdir}" || $err "mkdir: !gitclone \"${srcdir}\"" + insert_version_files "$srcdir" || $err "mkvdir $srcdir: versionfile" } build_release() { _xm="build_release ${vdir}" ( - cd "${srcdir}" || err "${_xm}: !cd \"${srcdir}\"" + cd "${srcdir}" || $err "${_xm}: !cd \"${srcdir}\"" fetch_trees [ "${mode}" = "u-boot" ] || x_ mv src/docs docs - ) || err "can't create release files" + ) || $err "can't create release files" git log --graph --pretty=format:'%Cred%h%Creset %s %Creset' \ --abbrev-commit > "${srcdir}/CHANGELOG" || \ - err "build_release $srcdir: couldn't generate changelog" + $err "build_release $srcdir: couldn't generate changelog" ( if [ "${mode}" = "u-boot" ]; then - cd "${srcdir}/src/" || err "${_xm}: mktarball \"${srcdir}\"" + cd "${srcdir}/src/" || $err "${_xm}: mktarball \"${srcdir}\"" mktarball u-boot "../../${srcdir##*/}.tar.xz" || \ - err "$_xm: mksrc" + $err "$_xm: mksrc" # make a src archive containing only u-boot else - cd "${srcdir%/*}" || err "${_xm}: mktarball \"${srcdir}\"" + cd "${srcdir%/*}" || $err "${_xm}: mktarball \"${srcdir}\"" mktarball "${srcdir##*/}" "${srcdir##*/}.tar.xz" || \ - err "$_xm: mksrc" + $err "$_xm: mksrc" fi - ) || err "can't create src tarball" + ) || $err "can't create src tarball" [ "${mode}" = "src" ] && return 0 [ "${mode}" = "u-boot" ] && return 0 ( - cd "${srcdir}" || err "${_xm}: 2 !cd \"${srcdir}\"" + cd "${srcdir}" || $err "${_xm}: 2 !cd \"${srcdir}\"" mkrom_images - ) || err "can't build rom images" + ) || $err "can't build rom images" - rm -Rf "${srcdir}" || err "!rm -Rf ${srcdir}" + rm -Rf "${srcdir}" || $err "!rm -Rf ${srcdir}" } fetch_trees() @@ -85,7 +85,7 @@ fetch_trees() for x in config/git/*; do [ "${mode}" = "u-boot" ] && break [ ! -f "${x}" ] || ./update trees -f "${x#config/git/}" || \ - err "${_xm}: fetch ${x#config/git/}" + $err "${_xm}: fetch ${x#config/git/}" done [ "${mode}" = "u-boot" ] && x_ ./update trees -f u-boot @@ -93,54 +93,54 @@ fetch_trees() [ -f "${x}" ] || continue xp="${x#*/}"; xp="${xp%/*}" [ -L "${xp}" ] || rm -Rf "src/${xp}/${xp}" || \ - err "!rm -Rf \"src/${xp}/${xp}\"" + $err "!rm -Rf \"src/${xp}/${xp}\"" done - find . -name ".git" -exec rm -Rf {} + || err "$_xm: rm .git" - find . -name ".gitmodules" -exec rm -Rf {} + || err "$_xm: rm .gitmod" + find . -name ".git" -exec rm -Rf {} + || $err "$_xm: rm .git" + find . -name ".gitmodules" -exec rm -Rf {} + || $err "$_xm: rm .gitmod" x_ rm -Rf tmp .git } mkrom_images() { - ./build roms all || err "${_xm}: roms-all" - ./build serprog rp2040 || err "${_xm}: rp2040" - ./build serprog stm32 || err "${_xm}: stm32" + ./build roms all || $err "${_xm}: roms-all" + ./build serprog rp2040 || $err "${_xm}: rp2040" + ./build serprog stm32 || $err "${_xm}: stm32" for rombuild in bin/*; do [ -d "${rombuild}" ] || continue handle_rom_archive "${rombuild}" done - mv "release/${version}/roms/" ../roms || err "${_xm}: copy roms/" + mv "release/${version}/roms/" ../roms || $err "${_xm}: copy roms/" } handle_rom_archive() { builddir="${1}" romdir="tmp/romdir" - rm -Rf "${romdir}" || err "!rm romdir, handle_rom_archive" + rm -Rf "${romdir}" || $err "!rm romdir, handle_rom_archive" target="${builddir##*/}" if [ ! -f "config/coreboot/${target}/target.cfg" ]; then # No config, just make a tarball tarball="release/${version}/roms/${relname}_${target}.tar.xz" insert_copying_files "${builddir}" || \ - err "!insert copy, handle, ${builddir}" + $err "!insert copy, handle, ${builddir}" mktarball "${builddir}" "${tarball}" return 0 fi romdir="${romdir}/bin/${target}" - mkdir -p "${romdir}" || err "!mkdir -p romdir, handle_rom_archive" - cp "$builddir/"* "$romdir" || err "!cp romdir, handle_rom_archive" + mkdir -p "${romdir}" || $err "!mkdir -p romdir, handle_rom_archive" + cp "$builddir/"* "$romdir" || $err "!cp romdir, handle_rom_archive" printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" \ "${version}" "${projectname}" "${version}" "${target##*/}" insert_version_files "${romdir}" || \ - err "mkrom_tarball ${romdir}: versionfile" + $err "mkrom_tarball ${romdir}: versionfile" - insert_copying_files "$romdir" || err "!insert copy, handle 2, $romdir" + insert_copying_files "$romdir" || $err "!insert copy, handle 2, $romdir" mkrom_tarball } @@ -165,13 +165,13 @@ mkrom_tarball() { archivename="${relname}_${target##*/}" f="release/${version}/roms/${archivename}" - mkdir -p "${f%/*}" || err "mkrom_tarball: !mkdir -p ${f%/*}" + mkdir -p "${f%/*}" || $err "mkrom_tarball: !mkdir -p ${f%/*}" ( - cd "${romdir%"/bin/$target"}" || err "!cd ${romdir%"/bin/$target"}" + cd "${romdir%"/bin/$target"}" || $err "!cd ${romdir%"/bin/$target"}" mktarball "bin/${target}" "${archivename}.tar.xz" - ) || err "can't create rom tarball" + ) || $err "can't create rom tarball" mv "${romdir%"/bin/${target}"}/${archivename}.tar.xz"* "${f%/*}" || \ - err "mktar ${f%/*}/${romdir%"/bin/$target"}/$archivename.tar.xz" + $err "mktar ${f%/*}/${romdir%"/bin/$target"}/$archivename.tar.xz" printf "Created ROM archive: %s" "${f%/*}/${archivename}.tar.xz" } @@ -189,20 +189,20 @@ mktarball() tar_implementation=$(tar --version | head -n1) || : [ "${2%/*}" = "${2}" ] || \ - mkdir -p "${2%/*}" || err "mk, !mkdir -p \"${2%/*}\"" + mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\"" if [ "${tar_implementation% *}" = "tar (GNU tar)" ]; then tar --sort=name --owner=root:0 --group=root:0 \ --mtime="UTC 2023-11-06" -c "$1" | xz -T0 -9e > "$2" || \ - err "mktarball 1, ${1}" + $err "mktarball 1, ${1}" else # TODO: reproducible tarballs on non-GNU systems - tar -c "$1" | xz -T0 -9e > "$2" || err "mktarball 2, $1" + tar -c "$1" | xz -T0 -9e > "$2" || $err "mktarball 2, $1" fi ( [ "${2%/*}" != "${2}" ] && x_ cd "${2%/*}" sha512sum "${2##*/}" > "${2##*/}.sha512" || \ - err "!sha512sum \"${2##*/}\" > \"${2##*/}.sha512\"" - ) || err "failed to create tarball checksum" + $err "!sha512sum \"${2##*/}\" > \"${2##*/}.sha512\"" + ) || $err "failed to create tarball checksum" } main $@ diff --git a/script/update/trees b/script/update/trees index b0b58d6..a4d76ec 100755 --- a/script/update/trees +++ b/script/update/trees @@ -28,12 +28,12 @@ main() -s) mode="savedefconfig" ;; -l) mode="olddefconfig" ;; -n) mode="nconfig" ;; - *) err "Invalid option" ;; + *) $err "Invalid option" ;; esac shift; project="${OPTARG#src/}"; shift done - [ -z "$_f" ] && err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)" - [ -z "$project" ] && err "project name not specified" + [ -z "$_f" ] && $err "missing flag (-m/-u/-b/-c/-x/-f/-s/-l/-n)" + [ -z "$project" ] && $err "project name not specified" elfdir="elf/${project}" cfgsdir="config/${project}" @@ -66,17 +66,17 @@ build_targets() [ "$elfdir" = "elf/coreboot" ] && \ elfdir="elf/coreboot_nopayload_DO_NOT_FLASH" - [ -d "$cfgsdir" ] || err "directory, $cfgsdir, does not exist" + [ -d "$cfgsdir" ] || $err "directory, $cfgsdir, does not exist" listfile="${cfgsdir}/build.list" - [ -f "$listfile" ] || err "list file, $listfile, does not exist" + [ -f "$listfile" ] || $err "list file, $listfile, does not exist" # Build for all targets if no argument is given [ $# -gt 0 ] && target1="$1" [ "$target1" = "utils" ] && [ "$project" = "coreboot" ] && \ shift 1 targets=$(items "$cfgsdir") || \ - err "Cannot get options for $cfgsdir" + $err "Cannot get options for $cfgsdir" [ $# -gt 0 ] && targets=$@ [ -z "$mode" ] && x_ mkdir -p "$elfdir" @@ -127,7 +127,7 @@ handle_src_tree() x_ mkdir -p "${elfdir}/${target}" - [ -z "$tree" ] && err "handle_src_tree $project/$tree: tree unset" + [ -z "$tree" ] && $err "handle_src_tree $project/$tree: tree unset" codedir="src/${project}/${tree}" @@ -152,7 +152,7 @@ load_project_config() [ -f "${1}/target.cfg" ] || return 0 . "${1}/target.cfg" || \ - err "load_project_config ${1}: cannot load target.cfg"; return 0 + $err "load_project_config ${1}: cannot load target.cfg"; return 0 } check_cross_compiler() @@ -175,7 +175,7 @@ check_cross_compiler() check_config() { - [ -f "$config" ] || err "check_config: ${project}/${target}: no config" + [ -f "$config" ] || $err "check_config: ${project}/${target}: no config" dest_dir="${elfdir}/${target}/${config_name}" # TODO: very hacky check. do it properly (based on build.list) @@ -194,7 +194,7 @@ handle_makefile() [ -n "$mode" ] || make -C "$codedir" silentoldconfig || \ make -C "$codedir" oldconfig || : - run_make_command || err "handle_makefile $codedir: no makefile!" + run_make_command || $err "handle_makefile $codedir: no makefile!" if [ -e "${codedir}/.git" ] && [ "$project" = "u-boot" ] && \ [ "$mode" = "distclean" ]; then @@ -217,7 +217,7 @@ run_make_command() printf "%s\n" "${version%%-*}" > "$codedir/.coreboot-version" make $mode -j$(nproc) $makeargs -C "$codedir" || \ - err "run_make $codedir: !make $mode" + $err "run_make $codedir: !make $mode" [ "$mode" != "clean" ] && return 0 make -C "$codedir" distclean 2>/dev/null || : @@ -229,9 +229,9 @@ check_cmake() check_makefile "${1}" || \ cmake -B "${1}" "${1}/${cmakedir}" || \ check_makefile "${1}" || \ - err "check_cmake ${1}: can't cmake ${cmakedir}" + $err "check_cmake ${1}: can't cmake ${cmakedir}" [ -z "${cmakedir}" ] || check_makefile "${1}" || \ - err "check_cmake ${1}: could not generate Makefile" + $err "check_cmake ${1}: could not generate Makefile" return 0 } @@ -239,11 +239,11 @@ check_autoconf() { ( _cfgopt="" - cd "${1}" || err "!cd $1" + cd "${1}" || $err "!cd $1" [ -f "bootstrap" ] && x_ ./bootstrap $bootstrapargs [ -f "autogen.sh" ] && x_ ./autogen.sh ${autogenargs} [ -f "configure" ] && x_ ./configure $autoconfargs; return 0 - ) || err "can't bootstrap project: $1" + ) || $err "can't bootstrap project: $1" } check_makefile()