mirror of
https://github.com/engineer-man/piston.git
synced 2025-06-09 03:26:27 +02:00
Initial nix ad-hoc package installation
This commit is contained in:
parent
10183d0638
commit
8e230befce
3 changed files with 32 additions and 40 deletions
35
flake.nix
35
flake.nix
|
@ -10,32 +10,27 @@
|
|||
args = {
|
||||
inherit pkgs;
|
||||
piston = {
|
||||
mkRuntime = {
|
||||
language,
|
||||
version,
|
||||
runtime? null,
|
||||
run,
|
||||
compile? null,
|
||||
packages? null,
|
||||
aliases? [],
|
||||
limitOverrides? {},
|
||||
tests
|
||||
}: let
|
||||
compileFile = if compile != null then
|
||||
pkgs.writeShellScript "compile" compile
|
||||
mkRuntime = builderFn: let
|
||||
languagePackagesFn = packages: with packages; [ ];
|
||||
buildRes = builderFn languagePackagesFn;
|
||||
compileFile = if builtins.hasAttr "compile" buildRes then
|
||||
pkgs.writeShellScript "compile" buildRes.compile
|
||||
else null;
|
||||
runFile = pkgs.writeShellScript "run" run;
|
||||
runFile = pkgs.writeShellScript "run" buildRes.run;
|
||||
metadata = {
|
||||
inherit language version runtime aliases limitOverrides;
|
||||
language = buildRes.language;
|
||||
version = buildRes.version;
|
||||
runtime = buildRes.runtime or null;
|
||||
aliases = buildRes.aliases or [];
|
||||
limitOverrides = buildRes.limitOverrides or {};
|
||||
run = runFile;
|
||||
compile = compileFile;
|
||||
packageSupport = packages != null;
|
||||
};
|
||||
tests = if (builtins.length buildRes.tests) > 0 then
|
||||
buildRes.tests
|
||||
else abort "Language ${buildRes.language} doesn't provide any tests";
|
||||
in {
|
||||
inherit packages metadata;
|
||||
tests = if (builtins.length tests) > 0 then
|
||||
tests
|
||||
else abort "Language ${language} doesn't provide any tests";
|
||||
inherit metadata tests;
|
||||
};
|
||||
mkTest = {
|
||||
files,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue