From c7764161a880a1c7e756329cc91806b5dfaa0922 Mon Sep 17 00:00:00 2001 From: Dan Vargas <10914883+dvargas46@users.noreply.github.com> Date: Fri, 14 May 2021 23:24:37 -0500 Subject: [PATCH] pkg(scala-3.0.0): use compile (#257) --- packages/scala/3.0.0/build.sh | 17 ++++++----------- packages/scala/3.0.0/compile | 15 +++++++++++++++ packages/scala/3.0.0/environment | 4 ++-- packages/scala/3.0.0/metadata.json | 2 +- packages/scala/3.0.0/run | 6 ++---- 5 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 packages/scala/3.0.0/compile diff --git a/packages/scala/3.0.0/build.sh b/packages/scala/3.0.0/build.sh index 0a3fcf7..4cbf363 100755 --- a/packages/scala/3.0.0/build.sh +++ b/packages/scala/3.0.0/build.sh @@ -1,16 +1,11 @@ #!/usr/bin/env bash -# Scala depends on Java -mkdir -p java -cd java -curl "https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz" -o java.tar.gz -tar xzf java.tar.gz --strip-components=1 -rm java.tar.gz -cd .. +# Download and extract JDK8 +curl -L "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u292b10.tar.gz" -o jdk.tar.gz +tar xzf jdk.tar.gz --strip-components=1 +rm jdk.tar.gz -mkdir -p scala -cd scala -curl -L "https://github.com/lampepfl/dotty/releases/download/3.0.0-RC1/scala3-3.0.0-RC1.tar.gz" -o scala.tar.gz +# Download and extract Scala 3 +curl -L "https://github.com/lampepfl/dotty/releases/download/3.0.0/scala3-3.0.0.tar.gz" -o scala.tar.gz tar -xzf scala.tar.gz --strip-components=1 rm scala.tar.gz -cd .. diff --git a/packages/scala/3.0.0/compile b/packages/scala/3.0.0/compile new file mode 100644 index 0000000..25853ef --- /dev/null +++ b/packages/scala/3.0.0/compile @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Compile scala classes into a jar file +scalac "$@" -d out.jar + +# Create the Manifest and include scala lib jars: +# NOTE: - entry point will only consider @main and App traits from the main file +# - scala lib jars will be added to the class path in order to run the jar properly +echo "Main-Class: $(grep -oP '\@main\s+def\s+\K[a-zA-Z][a-zA-Z0-9]*|object\s+\K[a-zA-Z][a-zA-Z0-9]*(?=\s+extends\s+App)' $1) +Class-Path: $(echo $JAVA_HOME/lib/*.jar | sed 's/\s/\n /g') + +" > manifest.txt + +# Update the jar with the manifest +jar ufm out.jar manifest.txt diff --git a/packages/scala/3.0.0/environment b/packages/scala/3.0.0/environment index 40244a6..a1fcafe 100644 --- a/packages/scala/3.0.0/environment +++ b/packages/scala/3.0.0/environment @@ -1,5 +1,5 @@ #!/usr/bin/env bash # Scala requires JAVA_HOME to be set -export JAVA_HOME=$PWD/java -export PATH=$PWD/scala/bin:$PATH +export JAVA_HOME=$PWD +export PATH=$PWD/bin:$PATH diff --git a/packages/scala/3.0.0/metadata.json b/packages/scala/3.0.0/metadata.json index 8c2e7b4..37bccf8 100644 --- a/packages/scala/3.0.0/metadata.json +++ b/packages/scala/3.0.0/metadata.json @@ -1,5 +1,5 @@ { "language": "scala", "version": "3.0.0", - "aliases": ["scala", "sc"] + "aliases": ["sc"] } diff --git a/packages/scala/3.0.0/run b/packages/scala/3.0.0/run index 1d92acc..afcc045 100644 --- a/packages/scala/3.0.0/run +++ b/packages/scala/3.0.0/run @@ -1,7 +1,5 @@ #!/usr/bin/env bash -# Put instructions to run the runtime -mv $1 $1.scala -filename=$1.scala +# Run jar file shift -scala $filename "$@" +java -jar out.jar "$@"