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 <alpernebiyasak@gmail.com>
fsdg20230625
Alper Nebi Yasak 2022-08-27 15:27:48 +03:00
parent 764a439a8c
commit ef39e05bb5
3 changed files with 34 additions and 10 deletions

View File

@ -6,6 +6,7 @@
# 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>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
#
# 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

View File

@ -3,6 +3,7 @@
# helper script: download coreboot
#
# Copyright (C) 2014, 2015, 2016, 2020, 2021 Leah Rowe <info@minifree.org>
# Copyright (C) 2022 Alper Nebi Yasak <alpernebiyasak@gmail.com>
#
# 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/}"

View File

@ -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