mirror of
https://github.com/engineer-man/piston.git
synced 2025-04-21 12:36:28 +02:00
add piston nix pkg for groovy
This commit is contained in:
parent
2bc7155895
commit
226eca1fb9
8 changed files with 56 additions and 52 deletions
|
@ -43,4 +43,5 @@ args: {
|
|||
"openjdk-java" = import ./openjdk-java.nix args;
|
||||
"iverilog" = import ./iverilog.nix args;
|
||||
"ghc-haskell" = import ./ghc-haskell.nix args;
|
||||
"groovy" = import ./groovy.nix args;
|
||||
}
|
||||
|
|
55
runtimes/groovy.nix
Normal file
55
runtimes/groovy.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.groovy;
|
||||
jre = pkgs.jre;
|
||||
awk = pkgs.gawk;
|
||||
sed = pkgs.gnused;
|
||||
grep = pkgs.gnugrep;
|
||||
in piston.mkRuntime {
|
||||
language = "groovy";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [
|
||||
"gvy"
|
||||
];
|
||||
|
||||
compile = ''
|
||||
# Groovyc has some dependencies on GNU grep, sed, and awk in their startup script
|
||||
export PATH="$PATH:${awk}/bin:${sed}/bin:${grep}/bin"
|
||||
|
||||
# Compile groovy scripts into a separate "classes" directory
|
||||
# NOTE: - Main file MUST be a groovy script
|
||||
# - not supporting object class entry points as of now
|
||||
${pkg}/bin/groovyc -d classes "$@"
|
||||
|
||||
# Create the Manifest and include groovy jars:
|
||||
# NOTE: - main class will be the first file ('.' becomes '_' and without the extension)
|
||||
# - groovy lib jars MUST be in the class path in order to work properly
|
||||
echo "Main-Class: $(sed 's/\./\_/g'<<<''${1%.*})
|
||||
Class-Path: $(echo ${pkg}/lib/*.jar | sed 's/\s/\n /g')
|
||||
|
||||
" > manifest.txt
|
||||
|
||||
# Create the jar from the manifest and classes
|
||||
${jre}/bin/jar cfm out.jar manifest.txt -C classes .
|
||||
'';
|
||||
|
||||
run = ''
|
||||
shift
|
||||
${jre}/bin/java -jar out.jar "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.groovy" = ''
|
||||
println 'OK'
|
||||
'';
|
||||
};
|
||||
args = [];
|
||||
stdin = "";
|
||||
packages = [];
|
||||
main = "test.groovy";
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue