summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>2022-08-27 15:27:48 +0300
committerAlper Nebi Yasak <alpernebiyasak@gmail.com>2022-08-27 17:35:55 +0300
commitef39e05bb5df505774b42a8739c3e7e57d43dd36 (patch)
tree52a54f8199b96ce0a098f0f079109024b6f15b41
parent764a439a8cbad7d55455494f025f3e77c9fa52c0 (diff)
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>
-rwxr-xr-xdownload13
-rwxr-xr-xresources/scripts/download/coreboot15
-rwxr-xr-xresources/scripts/download/u-boot16
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 <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
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 <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/}"
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