Convert some packages to nix-based

Affected packages:
- crystal
- dart
- dash
- deno
- elixir
- erlang
- gawk
This commit is contained in:
Thomas Hobson 2022-01-31 18:02:35 +13:00
parent ddab59ccdd
commit af5036d82c
No known key found for this signature in database
GPG key ID: 9F1FD9D87950DB6F
60 changed files with 224 additions and 309 deletions

31
runtimes/crystal.nix Normal file
View 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
View 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
View 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"
'';
};
})
];
}

View file

@ -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;
}

View 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");
'';
};
})
];
}

View 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
View 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
View 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
View 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
})
];
}