69 lines
2.3 KiB
Bash
Executable File
69 lines
2.3 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="01f5aa9eb6fa14a0adfa832ba33b6f7c68138c26"
|
|
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 [ "$SIGNED_JAR" == "1" ]; 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
|