Files
ReplayModCinematic/gradle/reprod/setup.sh
Jonas Herzig efaa5b7c41 Shouldn't release jars be final..
Well, looks like the jcenter repo doesn't care because the hash for
one of its jars has changed (a few bits in the jar were flipped).
Maven Central is still serving the original version, so we have to allow
both hashes.
2018-04-03 16:17:33 +02:00

69 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
set -x
PROXY_PORT="25678"
export PROXY_SETTINGS="-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=$PROXY_PORT -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=$PROXY_PORT"
pushd gradle/reprod
SHA256SUM="sha256sum"
command -v "$SHA256SUM" > /dev/null 2>&1 || SHA256SUM="shasum -a 256" # OSX
sha256val () {
$SHA256SUM $1 | cut -d' ' -f1
}
# Setup http(s) proxy
url="https://github.com/johni0702/proxy-witness"
commit="07e79a999991473489d443b8934ccca547ac7985"
if [ ! -d "deps/proxy-witness" ] || [ "$(git -C "deps/proxy-witness" rev-parse $commit^{commit})" != "$commit" ]; then
rm -rf "deps/proxy-witness"
mkdir -p "deps/proxy-witness"
pushd "deps/proxy-witness"
git clone "$url" .
git fetch origin $commit
git checkout "$commit"
popd
fi
pushd "deps/proxy-witness"
git reset --hard "$commit"
./gradlew $PROXY_SETTINGS build -x test -x javadoc
popd
java -Dproxywitness.httpUris=http://export.mcpbot.bspk.rs/versions.json \
-Dproxywitness.useCache=false \
-jar deps/proxy-witness/build/libs/proxy-witness.jar \
"$PROXY_PORT" checksums.txt > proxy.log 2>&1 &
proxy_pid=$!
trap "kill $proxy_pid" EXIT
../../gradlew $PROXY_SETTINGS -I init.gradle build
popd # Back to root
./gradlew -Preprod $PROXY_SETTINGS -I gradle/reprod/init.gradle "$@"
if [ "$(git blame -p version.txt | head -n1 | cut -d' ' -f1)" == "$(git rev-parse HEAD)" ]; then
echo "Trying to fetch signature for resulting jar files.."
pushd versions
for ver in */; do
[ "$ver" == "core/" ] && continue
pushd "$ver"
# Note: This requires there to be one and only one jar file (ignoring source artifacts)
jar="build/libs/$(ls build/libs | grep -v sources)"
jar_hash=$(sha256val "$jar")
mkdir build/sign_tmp
pushd build/sign_tmp
# Signatures are generated using:
# jarsigner -sigfile johni -signedjar signed.jar unsigned.jar replaymod
# jar xf signed.jar META-INF/MANIFEST.MF META-INF/JOHNI.SF META-INF/JOHNI.RSA
# tar cJf signature.tar.xz META-INF
wget -O - "https://www.johni0702.de/replaymod/signature/$jar_hash" | tar xJ
jar uMf "../../$jar" META-INF/
popd
popd
done
popd
fi