tix/tix/run.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
'')