You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
i2p-zero/bin/convert-jars-to-modules.sh

58 lines
2.1 KiB

#!/bin/bash
set -e
set -o pipefail
if [ $(uname -s) = Darwin ]; then
basedir=$(dirname $(cd "$(dirname "$0")"; pwd -P))
else
basedir=$(dirname $(dirname $(readlink -fm $0)))
fi
source "$basedir/bin/java-config.sh"
cp "$basedir"/import/jetty-lib/*.jar "$basedir/import/lib/"
cp "$basedir"/import/org-json/*.jar "$basedir/import/lib/"
rm -fr "$basedir/target/lib-combined"
rm -fr "$basedir/target/lib-combined-tmp"
mkdir -p "$basedir/target/lib-combined"
mkdir -p "$basedir/target/lib-combined-tmp"
jarPaths=`find "$basedir/import/lib" -name '*.jar'`
combinedJarPath="$basedir/target/lib-combined/combined.jar"
for jarPath in $jarPaths; do unzip -quo $jarPath -d "$basedir/target/lib-combined-tmp"; done
$JAVA_HOME/bin/jar cf "$combinedJarPath" -C "$basedir/target/lib-combined-tmp" .
rm -fr "$basedir/target/module-info"
mkdir -p "$basedir/target/module-info"
rm -fr "$basedir/target/modules"
mkdir -p "$basedir/target/modules"
echo "*** Determining dependencies for $combinedJarPath"
"$JAVA_HOME"/bin/jdeps --add-modules=ALL-MODULE-PATH --generate-module-info "$basedir/target/module-info" "$combinedJarPath"
modulesToRemove="java.desktop java.management java.rmi java.sql"
if [ $(uname -s) = Darwin ]; then
sed -i '' -e '$ d' "$basedir/target/module-info/combined/module-info.java"
for i in $modulesToRemove; do
sed -i '' "/$i/d" "$basedir/target/module-info/combined/module-info.java"
done
else
sed -i '$ d' "$basedir/target/module-info/combined/module-info.java"
for i in $modulesToRemove; do
sed -i "/$i/d" "$basedir/target/module-info/combined/module-info.java"
done
fi
echo 'uses org.eclipse.jetty.http.HttpFieldPreEncoder; }' >> "$basedir/target/module-info/combined/module-info.java"
echo "*** Creating new combined modular jar"
"$JAVA_HOME"/bin/javac --module-path "$combinedJarPath/combined" --patch-module combined="$combinedJarPath" "$basedir/target/module-info/combined/module-info.java"
cp $combinedJarPath "$basedir/target/modules/"
"$JAVA_HOME"/bin/jar uf "$basedir/target/modules/combined.jar" -C "$basedir/target/module-info/combined" module-info.class
normalizeZip "$basedir/target/modules/combined.jar"