diff options
Diffstat (limited to 'resources/scripts/download')
| -rwxr-xr-x | resources/scripts/download/u-boot | 93 | 
1 files changed, 87 insertions, 6 deletions
| diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index b67d6bd0..8c94d338 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -105,27 +105,83 @@ strip_comments()  		sed '/^$/d'  } +generate_deblob_script() +{ +	blob_list_file="$1" +	output="$2" + +	# Add sheebang and copyright headers from this file +	awk '{ +		if ($0 !~ /^#/ && NF > 0) { +			stop=1; +		} +		if (stop !=1) { +			printf("%s\n", $0); +		} +	}' $0 >> ${output} + +	# Add rm -rf before directories and rm -f before files +	awk \ +	'{ +	}{ +		if (NF == 0) { +			printf("\n"); +		} else { +			if ($0 !~ /#/ && $NF ~ /\/$/) { +				printf("rm -rf %s\n", $0); +			} else if ($0 !~ /#/) { +				printf("rm -f %s\n", $0); +			} else { +				# We have comments, try to see if they are +				# still valid paths before the comments +				comments_found=0 +				last_field=0 +				for(i=1; i<=NF; i++) { +					if($i ~ /#/) { +						comments_found=1; +					} else if(comments_found != 1) { +						last_field=i; +					} +				} +				if (last_field == 0) { +					printf("%s\n", $0); +				} else if ($last_field ~ /\/$/) { +					printf("rm -rf %s\n", $0); +				} else { +					printf("rm -f %s\n", $0); +				} +			} +		} +	}' "${blob_list_file}" >> "${output}" +} +  usage()  {  	progname="./download u-boot"  	printf "Usage:\n" -	printf "\t%s                         # %s\n" \ +	printf "\t%s                                # %s\n" \  	       "${progname}" \  	       "Download latest u-boot git revision and deblob it" -	printf "\t%s [revision]              # %s\n" \ +	printf "\t%s [revision]                     # %s\n" \  	       "${progname}" \  	       "Download given u-boot git revision and deblob it" -	printf "\t%s --blobs-list            # %s\n" \ +	printf "\t%s --blobs-list                   # %s\n" \  	       "${progname}" \  	       "Print the path of the blobs.list file for the latest supported u-boot revision" -	printf "\t%s --blobs-list [revision] # %s\n" \ +	printf "\t%s --blobs-list [revision]        # %s\n" \  	       "${progname}" \  	       "Print the path of the blobs.list file for the given u-boot revision" -	printf "\t%s --list-revisions        # %s\n" \ +	printf "\t%s --gen-deblob-script            # %s\n" \ +	       "${progname}" \ +	       "Print the path of the generated deblob script for the latest supported u-boot revision" +	printf "\t%s --gen-deblob-script [revision] # %s\n" \ +	       "${progname}" \ +	       "Print the path of the generated deblob script for the given u-boot revision" +	printf "\t%s --list-revisions               # %s\n" \  	       "${progname}" \  	       "List supported u-boot revisions" -	printf "\t%s --help                  # %s\n" \ +	printf "\t%s --help                         # %s\n" \  	       "${progname}" \  	       "Prints this help"  } @@ -163,6 +219,15 @@ print_blobs_list_path()  	printf "resources/u-boot/default/blobs.list\n"  } +print_deblob_script_path() +{ +	version="$1" +	path="$(mktemp)" + +	generate_deblob_script "$(print_blobs_list_path ${version})" "${path}" +	printf "%s\n" ${path} +} +  if [ $# -eq 0 ] ; then  	latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)"  	download_uboot_revision "${latest_revision}" @@ -191,6 +256,22 @@ elif [ $# -eq 2 -a "$1" == "--blobs-list" ] ; then  	printf "Error: Revision '${1}' is not supported\n"  	exit 1 +elif [ $# -eq 1 -a "$1" == "--gen-deblob-script" ] ; then +	latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)" +	print_deblob_script_path "${latest_revision}" +	exit 0 +elif [ $# -eq 2 -a "$1" == "--gen-deblob-script" ] ; then +	found=0 +	for revision in ${supported_uboot_revisions} ; do +		if [ "${revision}" = "$2" ] ; then +			print_deblob_script_path "$2" +			exit 0 +		fi +	done + +	printf "Error: Revision '${1}' is not supported\n" + +	exit 1  elif [ $# -eq 1 ] ; then  	found=0  	for revision in ${supported_uboot_revisions} ; do | 
