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.
69 lines
2.4 KiB
Bash
Executable File
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
|