diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2022-02-16 13:35:47 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2022-02-16 18:00:30 +0100 |
commit | 4b2d426a206e6182f4e6676b3d6018f05d6e4d98 (patch) | |
tree | 7eae8cf2fdec34d140e14188ddc8674a4535b902 /resources/scripts/download | |
parent | f955248044767504fb7c6c0e67e545b84cb1008c (diff) |
scripts: download: u-boot: Add help and support for multiple revisions
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'resources/scripts/download')
-rwxr-xr-x | resources/scripts/download/u-boot | 88 |
1 files changed, 73 insertions, 15 deletions
diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 704d1c3a..ca7883ca 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -32,6 +32,12 @@ deleteblobs="true" # This script handles the internet, and Git. Both are inherently unreliable. [[ -f build_error ]] && rm -f build_error +# Make sure that older revision are first as code uses that order to +# find the latest supported revision. +supported_uboot_revisions=" \ + v2021.07 \ +" + downloadfor() { uboot_revision="v2021.07" uboot_dir="u-boot/u-boot" @@ -99,25 +105,77 @@ strip_comments() sed '/^$/d' } -printf "Downloading u-boot and (if exist in build system) applying patches\n" -downloadfor +usage() +{ + progname="./download u-boot" -rm -f "build_error" -printf "\n\n" + printf "Usage:\n" + printf "\t%s # %s\n" \ + "${progname}" \ + "Download latest u-boot git revision and deblob it" + printf "\t%s [revision] # %s\n" \ + "${progname}" \ + "Download given u-boot git revision and deblob it" + printf "\t%s --list-revisions # %s\n" \ + "${progname}" \ + "List supported u-boot revisions" + printf "\t%s --help # %s\n" \ + "${progname}" \ + "Prints this help" +} -if [ "${deleteblobs}" = "true" ]; then - bloblist="resources/u-boot/default/blobs.list" +download_uboot_revision() +{ + git_revision="$1" - for blob_path in $(strip_comments "${bloblist}"); do - if echo "${blob_path}" | grep '/$' 2>&1 >/dev/null ; then - printf "Deleting blob directory: '%s/%s'\n" \ - "${uboot_dir}" "${blob_path}" - rm -rf "${uboot_dir}/${blob_path}" - else - printf "Deleting blob file: '%s/%s'\n" \ - "${uboot_dir}" "${blob_path}" - rm -f "${uboot_dir}/${blob_path}" + printf "Downloading u-boot " + printf "and (if exist in build system) applying patches\n" + downloadfor "${git_revision}" + + rm -f "build_error" + printf "\n\n" + + if [ "${deleteblobs}" = "true" ]; then + bloblist="resources/u-boot/default/blobs.list" + for blob_path in $(strip_comments "${bloblist}"); do + if echo "${blob_path}" | \ + grep '/$' 2>&1 >/dev/null ; then + printf "Deleting blob directory: '%s/%s'\n" \ + "${uboot_dir}" "${blob_path}" + rm -rf "${uboot_dir}/${blob_path}" + else + printf "Deleting blob file: '%s/%s'\n" \ + "${uboot_dir}" "${blob_path}" + rm -f "${uboot_dir}/${blob_path}" + fi + done + fi +} + +if [ $# -eq 0 ] ; then + latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)" + download_uboot_revision "${latest_revision}" + exit 0 +elif [ $# -eq 1 -a "$1" == "--help" ] ; then + usage + exit 0 +elif [ $# -eq 1 -a "$1" == "--list-revisions" ] ; then + for revision in ${supported_uboot_revisions} ; do + printf "${revision}\n" + done + exit 0 +elif [ $# -eq 1 ] ; then + found=0 + for revision in ${supported_uboot_revisions} ; do + if [ "${revision}" = "$1" ] ; then + download_uboot_revision "$1" + exit 0 fi done + + printf "Error: Revision '${1}' is not supported\n" + + exit 1 fi + exit 0 |