|
|
|
@ -23,22 +23,24 @@ download_package() { |
|
|
|
OUTDIR="${CPM_SOURCE_CACHE}/${LOWER_PACKAGE}/${KEY}" |
|
|
|
[ -d "$OUTDIR" ] && return |
|
|
|
|
|
|
|
curl "$DOWNLOAD" -s -L -o "$OUTFILE" |
|
|
|
echo $OUTFILE |
|
|
|
curl "$DOWNLOAD" -sS -L -o "$OUTFILE" |
|
|
|
|
|
|
|
ACTUAL_HASH=$(${HASH_ALGO}sum "$OUTFILE" | cut -d" " -f1) |
|
|
|
[ "$ACTUAL_HASH" != "$HASH" ] && echo "$FILENAME did not match expected hash; expected $HASH but got $ACTUAL_HASH" && exit 1 |
|
|
|
|
|
|
|
mkdir -p "$OUTDIR" |
|
|
|
|
|
|
|
pushd "$OUTDIR" |
|
|
|
pushd "$OUTDIR" > /dev/null |
|
|
|
|
|
|
|
case "$FILENAME" in |
|
|
|
(*.7z) |
|
|
|
7z x "$OUTFILE" |
|
|
|
7z x "$OUTFILE" > /dev/null |
|
|
|
;; |
|
|
|
(*.tar*) |
|
|
|
tar xf "$OUTFILE" |
|
|
|
tar xf "$OUTFILE" > /dev/null |
|
|
|
;; |
|
|
|
(*.zip) |
|
|
|
unzip "$OUTFILE" |
|
|
|
unzip "$OUTFILE" > /dev/null |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
@ -50,18 +52,18 @@ download_package() { |
|
|
|
if [ $(wc -l <<< "$DIRS") -eq 2 ]; then |
|
|
|
SUBDIR=$(find . -maxdepth 1 -type d -not -name ".") |
|
|
|
mv "$SUBDIR"/* . |
|
|
|
mv "$SUBDIR"/.* . || true |
|
|
|
mv "$SUBDIR"/.* . 2>/dev/null || true |
|
|
|
rmdir "$SUBDIR" |
|
|
|
fi |
|
|
|
|
|
|
|
if grep -e "patches" <<< "$JSON"; then |
|
|
|
if grep -e "patches" <<< "$JSON" > /dev/null; then |
|
|
|
PATCHES=$(jq -r '.patches | join(" ")' <<< "$JSON") |
|
|
|
for patch in $PATCHES; do |
|
|
|
patch -p1 < "$ROOTDIR"/.patch/$package/$patch |
|
|
|
done |
|
|
|
fi |
|
|
|
|
|
|
|
popd |
|
|
|
popd > /dev/null |
|
|
|
} |
|
|
|
|
|
|
|
ci_package() { |
|
|
|
@ -78,12 +80,23 @@ ci_package() { |
|
|
|
|
|
|
|
[ "$REPO" == null ] && echo "No repo defined for CI package $package" && return |
|
|
|
|
|
|
|
echo "CI package $PACKAGE" |
|
|
|
|
|
|
|
for platform in windows-amd64 windows-arm64 android solaris freebsd linux linux-aarch64; do |
|
|
|
FILENAME="${NAME}-${platform}-${VERSION}.${EXT}" |
|
|
|
DOWNLOAD="https://github.com/${REPO}/releases/download/v${VERSION}/${FILENAME}" |
|
|
|
PACKAGE_NAME="$PACKAGE" |
|
|
|
KEY=$platform |
|
|
|
echo $DOWNLOAD |
|
|
|
|
|
|
|
echo "- platform $KEY" |
|
|
|
|
|
|
|
HASH_ALGO=$(jq -r ".hash_algo" <<< "$JSON") |
|
|
|
[ "$HASH_ALGO" == null ] && HASH_ALGO=sha512 |
|
|
|
|
|
|
|
HASH_SUFFIX="${HASH_ALGO}sum" |
|
|
|
HASH_URL="${DOWNLOAD}.${HASH_SUFFIX}" |
|
|
|
|
|
|
|
HASH=$(curl "$HASH_URL" -sS -q -L -o -) |
|
|
|
|
|
|
|
download_package |
|
|
|
done |
|
|
|
@ -95,7 +108,6 @@ do |
|
|
|
JSON=$(find . externals src/yuzu/externals externals/ffmpeg src/dynarmic/externals externals/nx_tzdb -maxdepth 1 -name cpmfile.json -exec jq -r ".\"$package\" | select( . != null )" {} \;) |
|
|
|
|
|
|
|
[ -z "$JSON" ] && echo "No cpmfile definition for $package" && continue |
|
|
|
echo $JSON |
|
|
|
|
|
|
|
PACKAGE_NAME=$(jq -r ".package" <<< "$JSON") |
|
|
|
[ "$PACKAGE_NAME" == null ] && PACKAGE_NAME="$package" |
|
|
|
@ -109,6 +121,7 @@ do |
|
|
|
# url parsing WOOOHOOHOHOOHOHOH |
|
|
|
URL=$(jq -r ".url" <<< "$JSON") |
|
|
|
REPO=$(jq -r ".repo" <<< "$JSON") |
|
|
|
SHA=$(jq -r ".sha" <<< "$JSON") |
|
|
|
|
|
|
|
if [ "$URL" != "null" ]; then |
|
|
|
DOWNLOAD="$URL" |
|
|
|
@ -117,7 +130,6 @@ do |
|
|
|
|
|
|
|
TAG=$(jq -r ".tag" <<< "$JSON") |
|
|
|
ARTIFACT=$(jq -r ".artifact" <<< "$JSON") |
|
|
|
SHA=$(jq -r ".sha" <<< "$JSON") |
|
|
|
BRANCH=$(jq -r ".branch" <<< "$JSON") |
|
|
|
|
|
|
|
if [ "$TAG" != "null" ]; then |
|
|
|
@ -146,7 +158,7 @@ do |
|
|
|
if [ "$KEY" == null ]; then |
|
|
|
VERSION=$(jq -r ".version" <<< "$JSON") |
|
|
|
GIT_VERSION=$(jq -r ".git_version" <<< "$JSON") |
|
|
|
|
|
|
|
|
|
|
|
if [ "$SHA" != null ]; then |
|
|
|
KEY=$(cut -c1-4 - <<< "$SHA") |
|
|
|
elif [ "$GIT_VERSION" != null ]; then |
|
|
|
@ -159,7 +171,9 @@ do |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
echo "$package download URL: $DOWNLOAD, with key $KEY" |
|
|
|
echo $KEY |
|
|
|
|
|
|
|
echo "Downloading regular package $package, with key $KEY, from $DOWNLOAD" |
|
|
|
|
|
|
|
# hash parsing |
|
|
|
HASH_ALGO=$(jq -r ".hash_algo" <<< "$JSON") |
|
|
|
@ -178,10 +192,6 @@ do |
|
|
|
HASH=$(curl "$HASH_URL" -L -o -) |
|
|
|
fi |
|
|
|
|
|
|
|
# TODO(crueter): Hash verification |
|
|
|
|
|
|
|
echo "$package hash is $HASH" |
|
|
|
|
|
|
|
download_package |
|
|
|
done |
|
|
|
|