mirror of
https://github.com/engineer-man/piston.git
synced 2025-06-08 03:06:26 +02:00
add piston nix pkg for scala
This commit is contained in:
parent
2490833ef1
commit
560b4ac1ee
8 changed files with 55 additions and 44 deletions
|
@ -60,4 +60,5 @@ args: {
|
|||
"fpc-pascal" = import ./fpc-pascal.nix args;
|
||||
"brainfuck" = import ./brainfuck.nix args;
|
||||
"node-coffeescript" = import ./node-coffeescript.nix args;
|
||||
"jvm-scala" = import ./jvm-scala.nix args;
|
||||
}
|
||||
|
|
54
runtimes/jvm-scala.nix
Normal file
54
runtimes/jvm-scala.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.scala;
|
||||
java = pkgs.jdk8;
|
||||
sed = pkgs.gnused;
|
||||
in piston.mkRuntime {
|
||||
language = "scala";
|
||||
version = pkg.version;
|
||||
runtime = "jvm";
|
||||
|
||||
aliases = [
|
||||
"sc"
|
||||
];
|
||||
|
||||
compile = ''
|
||||
# Compile scala classes into a jar file
|
||||
${pkg}/bin/scalac "$@" -d out.jar
|
||||
|
||||
# Capture extra class-path libraries
|
||||
java_libs="$(echo ${java}/lib/openjdk/lib/*.jar | ${sed}/bin/sed 's/\s/\\n /g')"
|
||||
scala_libs="$(echo ${pkg}/lib/*.jar | ${sed}/bin/sed 's/\s/\\n /g')"
|
||||
|
||||
echo -e "Class-Path: $java_libs
|
||||
$scala_libs
|
||||
" > classPath
|
||||
|
||||
# Update the jar manifest with scala libs
|
||||
${java}/bin/jar umf classPath out.jar
|
||||
'';
|
||||
|
||||
run = ''
|
||||
# Run jar from compile
|
||||
shift
|
||||
${java}/bin/java -jar out.jar "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.sc" = ''
|
||||
object Main {
|
||||
def main(args: Array[String]) = {
|
||||
println("OK")
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
args = [];
|
||||
stdin = "";
|
||||
packages = [];
|
||||
main = "test.sc";
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue