mirror of
https://github.com/engineer-man/piston.git
synced 2025-04-23 05:26:28 +02:00
Convert some packages to nix-based
Affected packages: - crystal - dart - dash - deno - elixir - erlang - gawk
This commit is contained in:
parent
ddab59ccdd
commit
af5036d82c
60 changed files with 224 additions and 309 deletions
31
runtimes/crystal.nix
Normal file
31
runtimes/crystal.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.crystal;
|
||||
in piston.mkRuntime {
|
||||
language = "crystal";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [
|
||||
"cr"
|
||||
];
|
||||
|
||||
compile = ''
|
||||
${pkg}/bin/crystal build "$@" -o out --no-color
|
||||
chmod +x out
|
||||
'';
|
||||
|
||||
run = ''
|
||||
shift
|
||||
./out "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.cr" = ''
|
||||
puts("OK")
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
25
runtimes/dart.nix
Normal file
25
runtimes/dart.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.dart;
|
||||
in piston.mkRuntime {
|
||||
language = "dart";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [];
|
||||
|
||||
run = ''
|
||||
${pkg}/bin/dart run "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.dart" = ''
|
||||
void main() {
|
||||
print('OK');
|
||||
}
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
22
runtimes/dash.nix
Normal file
22
runtimes/dash.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.dash;
|
||||
in piston.mkRuntime {
|
||||
language = "dash";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [];
|
||||
|
||||
run = ''
|
||||
${pkg}/bin/dash "$@"
|
||||
'';
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.dash" = ''
|
||||
echo "OK"
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
|
@ -5,4 +5,12 @@ args: {
|
|||
"bash" = import ./bash.nix args;
|
||||
"clojure" = import ./clojure.nix args;
|
||||
"cobol-gnu-cobol" = import ./cobol-gnu-cobol.nix args;
|
||||
"crystal" = import ./crystal.nix args;
|
||||
"dart" = import ./dart.nix args;
|
||||
"dash" = import ./dash.nix args;
|
||||
"deno-javascript" = import ./deno-javascript.nix args;
|
||||
"deno-typescript" = import ./deno-typescript.nix args;
|
||||
"elixir" = import ./elixir.nix args;
|
||||
"erlang" = import ./erlang.nix args;
|
||||
"gawk-awk" = import ./gawk-awk.nix args;
|
||||
}
|
||||
|
|
27
runtimes/deno-javascript.nix
Normal file
27
runtimes/deno-javascript.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.deno;
|
||||
in piston.mkRuntime {
|
||||
language = "javascript";
|
||||
version = pkg.version;
|
||||
runtime = "deno";
|
||||
|
||||
aliases = [
|
||||
"js"
|
||||
"deno-js"
|
||||
];
|
||||
|
||||
run = ''
|
||||
DENO_DIR=$PWD ${pkg}/bin/deno run $@
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.js" = ''
|
||||
console.log("OK");
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
27
runtimes/deno-typescript.nix
Normal file
27
runtimes/deno-typescript.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.deno;
|
||||
in piston.mkRuntime {
|
||||
language = "typescript";
|
||||
version = pkg.version;
|
||||
runtime = "deno";
|
||||
|
||||
aliases = [
|
||||
"ts"
|
||||
"deno-ts"
|
||||
];
|
||||
|
||||
run = ''
|
||||
DENO_DIR=$PWD ${pkg}/bin/deno run $@
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.ts" = ''
|
||||
console.log("OK");
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
30
runtimes/elixir.nix
Normal file
30
runtimes/elixir.nix
Normal file
|
@ -0,0 +1,30 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.elixir;
|
||||
in piston.mkRuntime {
|
||||
language = "elixir";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [
|
||||
"exs"
|
||||
];
|
||||
|
||||
run = ''
|
||||
export LC_ALL=en_US.UTF-8
|
||||
${pkg}/bin/elixir "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.exs" = ''
|
||||
IO.puts("OK")
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
limitOverrides = {
|
||||
"max_file_size" = 100000000; # 100MB
|
||||
};
|
||||
}
|
28
runtimes/erlang.nix
Normal file
28
runtimes/erlang.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.erlang;
|
||||
in piston.mkRuntime {
|
||||
language = "erlang";
|
||||
version = pkg.version;
|
||||
|
||||
aliases = [
|
||||
"erl"
|
||||
"escript"
|
||||
];
|
||||
|
||||
run = ''
|
||||
${pkg}/bin/escript "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.erl" = ''
|
||||
|
||||
main(_) ->
|
||||
io:format("OK~n").
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
26
runtimes/gawk-awk.nix
Normal file
26
runtimes/gawk-awk.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.gawk;
|
||||
in piston.mkRuntime {
|
||||
language = "awk";
|
||||
version = pkg.version;
|
||||
runtime = "gawk";
|
||||
|
||||
aliases = [];
|
||||
|
||||
|
||||
run = ''
|
||||
${pkg}/bin/gawk -f "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.awk" = ''
|
||||
{print "OK"}
|
||||
'';
|
||||
};
|
||||
stdin = "\n"; # awk needs some line input
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue