22 lines
868 B
Nix
22 lines
868 B
Nix
pkgs: files: let
|
|
test = import ./test.nix;
|
|
res = builtins.listToAttrs (map test files);
|
|
resFile = builtins.toFile "results" (builtins.toJSON res);
|
|
filters = import ./filters.nix;
|
|
getNix = "import ${./eval.nix} ${resFile}";
|
|
extractNix = "nix eval --impure --quiet --expr 'let r = ${getNix}; in builtins.trace r r'";
|
|
nixRepl = "nix repl --expr '{ r = ${getNix}; }'";
|
|
in (pkgs.writeShellScriptBin "test" ''
|
|
t=''${1:-overview}
|
|
case "$t" in
|
|
"file") echo '${resFile}' ;;
|
|
"raw") cat '${resFile}' ;;
|
|
"json") ${pkgs.jq}/bin/jq '.' '${resFile}' ;;
|
|
"explore") ${pkgs.fx}/bin/fx '${resFile}' ;;
|
|
"nix") ${extractNix} | ${pkgs.alejandra}/bin/alejandra -q ;;
|
|
"nixrepl") ${nixRepl} ;;
|
|
"nixraw") ${extractNix} ;;
|
|
"overview") ${pkgs.jq}/bin/jq '${filters.overview}' '${resFile}' ;;
|
|
*) echo format "$t" not recognised! ;;
|
|
esac
|
|
'')
|