diff options
| author | Alper Nebi Yasak <alpernebiyasak@gmail.com> | 2022-08-27 16:39:47 +0300 | 
|---|---|---|
| committer | Alper Nebi Yasak <alpernebiyasak@gmail.com> | 2022-08-27 17:35:55 +0300 | 
| commit | cf295741650aaffcb03866ab15a0c7175c3dc882 (patch) | |
| tree | 210b0b39a8ab6d230c5d99d34d6baec9c5818b6e | |
| parent | ef39e05bb5df505774b42a8739c3e7e57d43dd36 (diff) | |
download: Use shallow clones for big projects
Downloading coreboot and U-Boot takes quite the disk space and bandwith.
We don't need to download entire repos, only the revisions that we are
interested in.
Use the --depth=1 option to only download the files we need. Since the
initial clones may not have our target revision, always try to fetch it.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
| -rwxr-xr-x | resources/scripts/download/coreboot | 18 | ||||
| -rwxr-xr-x | resources/scripts/download/u-boot | 22 | 
2 files changed, 20 insertions, 20 deletions
| diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 965c00f6..80fff097 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -152,21 +152,21 @@ downloadfor() {  	if [ ! -d coreboot ]; then  		printf "Download coreboot from upstream:\n" -		git clone https://review.coreboot.org/coreboot || rm -Rf coreboot +		git clone --depth=1 https://review.coreboot.org/coreboot || rm -Rf coreboot  		if [ ! -d coreboot ]; then  			printf "WARNING: Upstream failed. Trying backup github repository:\n" -			git clone https://github.com/coreboot/coreboot.git || rm -Rf coreboot +			git clone --depth=1 https://github.com/coreboot/coreboot.git || rm -Rf coreboot  		fi  		if [ ! -d coreboot ]; then   			printf "ERROR: download/coreboot: Problem with git-clone. Network issue?\n"  			cd ../; return 1  		fi -	else -		( cd coreboot/; git pull || touch ../build_error ) -		if [ -f ../build_error ]; then -			printf "ERROR: download/coreboot: Problem with git-pull. Network issue?\n" -			cd ../; return 1 -		fi +	fi + +	( cd coreboot/; git fetch --depth=1 origin "${cbrevision}" || touch ../build_error ) +	if [ -f ../build_error ]; then +		printf "ERROR: download/coreboot: Problem with git-fetch. Network issue?\n" +		cd ../; return 1  	fi  	cp -R coreboot "${cbtree}" || touch ../build_error @@ -184,7 +184,7 @@ downloadfor() {  		cd ../../; return 1  	fi -	git submodule update --init || touch ../../build_error +	git submodule update --init --depth=1 || touch ../../build_error  	if [ -f ../../build_error ]; then  		printf "ERROR: download/coreboot: Unable to update submodules for tree '%s'\n" "${cbtree}"  		cd ../../; return 1 diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 2e086337..5fc80868 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -125,12 +125,12 @@ downloadfor() {  	if [ ! -d "${uboot_dir}" ]; then  		printf "Download u-boot from upstream:\n" -		git clone https://source.denx.de/u-boot/u-boot.git \ +		git clone --depth=1 https://source.denx.de/u-boot/u-boot.git \  		    "${uboot_dir}" || \  		    rm -Rf "${uboot_dir}"  		if [ ! -d "${uboot_dir}" ]; then  			printf "WARNING: Upstream failed. Trying backup github repository:\n" -			git clone https://github.com/u-boot/u-boot.git \ +			git clone --depth=1 https://github.com/u-boot/u-boot.git \  				"${uboot_dir}" || \  				rm -Rf coreboot  		fi @@ -140,14 +140,14 @@ downloadfor() {  			"download/u-boot"  			return 1  		fi -	else -		git -C "${uboot_dir}" pull || touch build_error -		if [ -f build_error ]; then -		    printf \ -			"ERROR: %s: Problem with git-pull. Network issue?\n" \ -			"download/u-boot" -			return 1 -		fi +	fi + +	git -C "${uboot_dir}" fetch --depth=1 origin "${ubrevision}" || touch build_error +	if [ -f build_error ]; then +	    printf \ +		"ERROR: %s: Problem with git-fetch. Network issue?\n" \ +		"download/u-boot" +		return 1  	fi  	cp -R "${uboot_dir}" "${ubtree}" || touch build_error @@ -167,7 +167,7 @@ downloadfor() {  		return 1  	fi -	git -C "${ubtree}" submodule update --init || touch build_error +	git -C "${ubtree}" submodule update --init --depth=1 || touch build_error  	if [ -f build_error ]; then  		printf "ERROR: %s: Unable to update submodules for tree '%s'\n" \  			"${ubtree}" | 
