diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/makepkg.sh.in | 51 | 
1 files changed, 24 insertions, 27 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 44d5335b..c5f76714 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1145,12 +1145,11 @@ generate_checksums() {  			exit 1 # $E_CONFIG_ERROR  		fi -		local ct=0 -		local indentsz numsrc=${#source[@]} +		local indentsz idx numsrc=${#source[@]}  		printf "%s%n" "${integ}sums=(" indentsz -		local netfile -		for netfile in "${source[@]}"; do +		for (( idx = 0; idx < numsrc; i++ )); do +			local netfile=${source[idx]}  			local proto sum  			proto="$(get_protocol "$netfile")" @@ -1171,10 +1170,10 @@ generate_checksums() {  			esac  			# indent checksum on lines after the first -			printf "%*s%s" $(( ct ? indentsz : 0 )) '' "'$sum'" +			printf "%*s%s" $(( idx ? indentsz : 0 )) '' "'$sum'"  			# print a newline on lines before the last -			(( ++ct < numsrc )) && echo +			(( ++idx < numsrc )) && echo  		done  		echo ")" @@ -1193,39 +1192,31 @@ check_checksums() {  		if (( ${#integrity_sums[@]} == ${#source[@]} )); then  			msg "$(gettext "Validating source files with %s...")" "${integ}sums"  			correlation=1 -			local errors=0 -			local idx=0 -			local file -			for file in "${source[@]}"; do -				local found=1 -				file="$(get_filename "$file")" +			local idx errors=0 +			for (( idx = 0; idx < ${#source[*]}; idx++ )); do +				local file="$(get_filename "${source[idx]}")"  				printf '    %s ... ' "$file" >&2 -				if [[ ${integrity_sums[$idx]} = 'SKIP' ]]; then +				if [[ ${integrity_sums[idx]} = 'SKIP' ]]; then  					printf '%s\n' "$(gettext "Skipped")" >&2 -					idx=$((idx + 1))  					continue  				fi  				if ! file="$(get_filepath "$file")"; then  					printf '%s\n' "$(gettext "NOT FOUND")" >&2  					errors=1 -					found=0 +					continue  				fi -				if (( $found )) ; then -					local expectedsum="${integrity_sums[idx],,}" -					local realsum="$(openssl dgst -${integ} "$file")" -					realsum="${realsum##* }" -					if [[ $expectedsum = "$realsum" ]]; then -						printf '%s\n' "$(gettext "Passed")" >&2 -					else -						printf '%s\n' "$(gettext "FAILED")" >&2 -						errors=1 -					fi +				local expectedsum="${integrity_sums[idx],,}" +				local realsum="$(openssl dgst -${integ} "$file")" +				realsum="${realsum##* }" +				if [[ $expectedsum = "$realsum" ]]; then +					printf '%s\n' "$(gettext "Passed")" >&2 +				else +					printf '%s\n' "$(gettext "FAILED")" >&2 +					errors=1  				fi - -				idx=$((idx + 1))  			done  			if (( errors )); then @@ -2261,6 +2252,12 @@ check_sanity() {  		fi  	done +	local idx=("${!source[@]}") +	if (( (idx[-1] + 1) != ${#source[*]} )); then +		error "$(gettext "Sparse arrays are not allowed for source")" +		ret=1 +	fi +  	return $ret  }  | 
