musllvm

musl and LLVM cross-toolchain build system
git clone https://git.daat.foo/repos/musllvm.git
Log | Files | Refs | README | LICENSE

check.sh (861B)


      1 #!/bin/sh
      2 set -eu
      3 
      4 . "$(dirname "$0")/config.sh"
      5 need sha256sum
      6 [ -f "$SOURCES_FILE" ] || die "source manifest not found: $SOURCES_FILE"
      7 case "${1:-pull}" in
      8 pull) need curl; mkdir -p "$SOURCES_DIR" ;;
      9 verify) ;;
     10 *) die "usage: check.sh [pull|verify]" ;;
     11 esac
     12 
     13 for name in musl linux llvm atomic; do
     14 	source_info "$name"
     15 	if archive_ok; then
     16 		printf 'OK %s\n' "$archive"
     17 		continue
     18 	fi
     19 	[ "${1:-pull}" = pull ] || die "missing or corrupt archive: $archive"
     20 	printf 'Downloading %s\n' "$archive"
     21 	part="$SOURCES_DIR/$archive.part.$$"
     22 	trap 'rm -f "$part"' 0
     23 	trap 'exit 1' HUP INT TERM
     24 	curl --fail --location --show-error --retry 3 --connect-timeout 20 \
     25 		--output "$part" "$url"
     26 	actual_digest=$(sha256sum "$part")
     27 	[ "${actual_digest%% *}" = "$digest" ] || die "SHA-256 mismatch for $archive"
     28 	mv "$part" "$SOURCES_DIR/$archive"
     29 	trap - 0 HUP INT TERM
     30 done