diff options
-rwxr-xr-x | download | 85 |
1 files changed, 45 insertions, 40 deletions
@@ -2,7 +2,7 @@ # Generic script for downloading programs used by the build system # -# Copyright (C) 2014, 2015, 2020, 2021 Leah Rowe <info@minifree.org> +# Copyright (C) 2014,2015,2020,2021,2023 Leah Rowe <info@minifree.org> # Copyright (C) 2015 Patrick "P. J." McDermott <pj@pehjota.net> # Copyright (C) 2015, 2016 Klemens Nanni <contact@autoboot.org> # Copyright (C) 2022 Caleb La Grange <thonkpeasant@protonmail.com> @@ -27,16 +27,42 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -u -e -./resources/scripts/misc/versioncheck - -rm -f "build_error" - download=resources/scripts/download +program="" + +main() +{ + ./resources/scripts/misc/versioncheck + rm -f "build_error" + + if [ $# -lt 1 ]; then + help + die "Please specify arguments." + fi + + program="${1}" + shift 1 + + if [ "${program}" = help ]; then + help + exit 0 + elif [ "${program}" = "all" ]; then + for downloadProgram in ${download}/*; do + "${downloadProgram}" + done + exit 0 + elif [ ! -f "${download}/${program}" ]; then + help + die "Invalid argument '${program}'. See: './download help'." + elif [ $# -lt 1 ]; then + "${download}/${program}" + else + "${download}/${program}" $@ + fi -listprograms() { - for program in "${download}"/*; do - printf '%s\n' "${program##*/}" - done + exit 0 + + ./.gitcheck clean } help() { @@ -54,9 +80,9 @@ help() { Example: ./download coreboot x60 Each program download script should work without extra paramaters, but - they can use them. For instance, './download coreboot' will download all - coreboot trees by default, but './download coreboot x60' will only download - the coreboot tree required for the target: x60 + they can be used. For example, './download coreboot' will download all + coreboot trees by default, but './download coreboot x60' will only + download the coreboot tree required for the target: x60 Each program download script should also accept the --help parameter to display the usage of the script. @@ -65,36 +91,15 @@ help() { EOF } +listprograms() { + for program in "${download}"/*; do + printf '%s\n' "${program##*/}" + done +} + die() { printf 'Error: %s\n' "${@}" 1>&2 exit 1 } -if [ $# -lt 1 ]; then - help - die "Please specify arguments." -fi - -program="${1}" -shift 1 -[ "${program}" = help ] && help && exit 0 - -if [ "${program}" = "all" ]; then - for downloadProgram in ${download}/*; do - "${downloadProgram}" - done - exit 0 -elif [ ! -f "${download}/${program}" ]; then - help - die "Invalid argument '${program}'. See: './download help'." -fi - -if [ $# -lt 1 ]; then - "${download}/${program}" -else - "${download}/${program}" $@ -fi - -exit 0 - -./.gitcheck clean +main $@ |