From 12dc2140aff6345fe55dcd8618cf839d0486f88f Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 27 Aug 2022 15:27:48 +0300 Subject: [PATCH] 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 7d975d6..e5dcb3d 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 21fe078..965c00f 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 b1a42b5..2e08633 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