From ef39e05bb5df505774b42a8739c3e7e57d43dd36 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 27 Aug 2022 15:27:48 +0300 Subject: download: Allow keeping .git dirs with NODELETE=git Keeping the git repositories is useful while development, e.g. to avoid git cloning repositories over and over again while debugging download scripts. Setting the NODELETE environment variable keeps the blobs and the git repositories. Allow a slightly finer-tuned version of this where we can keep only the git-related files by setting the variable to "git". Signed-off-by: Alper Nebi Yasak --- download | 13 ++++++++++++- resources/scripts/download/coreboot | 15 +++++++++++---- resources/scripts/download/u-boot | 16 +++++++++++----- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/download b/download index 7d975d68..e5dcb3d6 100755 --- a/download +++ b/download @@ -6,6 +6,7 @@ # Copyright (C) 2015 Patrick "P. J." McDermott # Copyright (C) 2015, 2016 Klemens Nanni # Copyright (C) 2022, Caleb La Grange +# Copyright (C) 2022 Alper Nebi Yasak # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -31,8 +32,12 @@ set -u -e # set this when you want to modify each coreboot tree # for example, you want to test custom patches # NODELETE= ./download coreboot +deletegit="true" deleteblobs="true" -[ "x${NODELETE+set}" = 'xset' ] && deleteblobs="false" +if [ "x${NODELETE+set}" = 'xset' ]; then + [ "x${NODELETE:-all}" = "xgit" ] && deletegit="false" + [ "x${NODELETE:-all}" = "xall" ] && deleteblobs="false" && deletegit="false" +fi rm -f "build_error" @@ -89,6 +94,8 @@ if [ "${program}" = "all" ]; then if [ -f "${downloadProgram}" ]; then if [ "${deleteblobs}" = "false" ]; then NODELETE= "${downloadProgram}" + elif [ "${deletegit}" = "false" ]; then + NODELETE=git "${downloadProgram}" else "${downloadProgram}" fi @@ -103,12 +110,16 @@ fi if [ $# -lt 1 ]; then if [ "${deleteblobs}" = "false" ]; then NODELETE= "${download}/${program}" + elif [ "${deletegit}" = "false" ]; then + NODELETE=git "${download}/${program}" else "${download}/${program}" fi else if [ "${deleteblobs}" = "false" ]; then NODELETE= "${download}/${program}" $@ + elif [ "${deletegit}" = "false" ]; then + NODELETE=git "${download}/${program}" $@ else "${download}/${program}" $@ fi diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 21fe0781..965c00f6 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -3,6 +3,7 @@ # helper script: download coreboot # # Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe +# Copyright (C) 2022 Alper Nebi Yasak # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -64,8 +65,12 @@ fi # set this when you want to modify each coreboot tree # for example, you want to test custom patches # NODELETE= ./download coreboot +deletegit="true" deleteblobs="true" -[ "x${NODELETE+set}" = 'xset' ] && deleteblobs="false" +if [ "x${NODELETE+set}" = 'xset' ]; then + [ "x${NODELETE:-all}" = "xgit" ] && deletegit="false" + [ "x${NODELETE:-all}" = "xall" ] && deleteblobs="false" && deletegit="false" +fi # Error handling is extreme in this script. # This script handles the internet, and Git. Both are inherently unreliable. @@ -239,9 +244,11 @@ rm -f resources/coreboot/*/seen rm -f "build_error" printf "\n\n" if [ "${deleteblobs}" = "true" ]; then - rm -Rf coreboot/coreboot/ - rm -Rf coreboot/.git* coreboot/*/.git* coreboot/*/3rdparty/*/.git* - rm -Rf coreboot/*/util/nvidia/cbootimage/.git* + if [ "${deletegit}" = "true" ]; then + rm -Rf coreboot/coreboot/ + rm -Rf coreboot/.git* coreboot/*/.git* coreboot/*/3rdparty/*/.git* + rm -Rf coreboot/*/util/nvidia/cbootimage/.git* + fi for cbdir in coreboot/*; do if [ ! -d "${cbdir}" ]; then continue; fi cbtree="${cbdir##coreboot/}" diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index b1a42b58..2e086337 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -25,9 +25,13 @@ set -u -e # set this when you want to modify each u-boot tree # for example, you want to test custom patches -# NODELETE= ./download coreboot +# NODELETE= ./download u-boot +deletegit="true" deleteblobs="true" -[ "x${NODELETE+set}" = 'xset' ] && deleteblobs="false" +if [ "x${NODELETE+set}" = 'xset' ]; then + [ "x${NODELETE:-all}" = "xgit" ] && deletegit="false" + [ "x${NODELETE:-all}" = "xall" ] && deleteblobs="false" && deletegit="false" +fi # Error handling is extreme in this script. # This script handles the internet, and Git. Both are inherently unreliable. @@ -305,7 +309,9 @@ download_uboot_board() printf "\n\n" if [ "${deleteblobs}" = "true" ]; then - rm -rf "${ubtree}"/.git* "${ubtree}"/*/.git* + if [ "${deletegit}" = "true" ]; then + rm -rf "${ubtree}"/.git* "${ubtree}"/*/.git* + fi blobslist="$(print_blobs_list_path "${board}")" for blob_path in $(strip_comments "${blobslist}"); do if echo "${blob_path}" | \ @@ -347,7 +353,7 @@ if [ $# -eq 0 ] ; then download_uboot_board "${board}" done - if [ "${deleteblobs}" = "true" ]; then + if [ "${deletegit}" = "true" ]; then rm -rf u-boot/u-boot/ u-boot/.git* fi @@ -396,7 +402,7 @@ elif [ $# -eq 1 ] ; then fi done - if [ "${deleteblobs}" = "true" ]; then + if [ "${deletegit}" = "true" ]; then rm -rf u-boot/u-boot/ u-boot/.git* fi -- cgit v1.2.1