forked from Fediversity/Fediversity
69 lines
1.4 KiB
Nix
69 lines
1.4 KiB
Nix
{ sources ? import ./npins
|
|
, system ? builtins.currentSystem
|
|
, pkgs ? import sources.nixpkgs {
|
|
inherit system;
|
|
config = { };
|
|
overlays = [ ];
|
|
}
|
|
, lib ? import "${sources.nixpkgs}/lib"
|
|
}:
|
|
let
|
|
lib' = final: prev:
|
|
let
|
|
new = import ./lib.nix { lib = final; };
|
|
in
|
|
new // { types = prev.recursiveUpdate prev.types new.types; };
|
|
lib'' = lib.extend lib';
|
|
|
|
in
|
|
rec {
|
|
lib = lib'';
|
|
result = lib.evalModules {
|
|
modules = [
|
|
./structure
|
|
./content
|
|
./presentation
|
|
{
|
|
_module.args = {
|
|
inherit pkgs;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
inherit (result.config) build;
|
|
|
|
shell =
|
|
let
|
|
run-tests = pkgs.writeShellApplication {
|
|
name = "run-tests";
|
|
text = with pkgs; with lib; ''
|
|
${getExe nix-unit} ${toString ./tests.nix} "$@"
|
|
'';
|
|
};
|
|
test-loop = pkgs.writeShellApplication {
|
|
name = "test-loop";
|
|
text = with pkgs; with lib; ''
|
|
${getExe watchexec} -w ${toString ./.} -- ${getExe nix-unit} ${toString ./tests.nix}
|
|
'';
|
|
};
|
|
devmode = pkgs.devmode.override {
|
|
buildArgs = "${toString ./.} -A build --show-trace";
|
|
open = "/index.html";
|
|
};
|
|
in
|
|
pkgs.mkShellNoCC {
|
|
packages = [
|
|
pkgs.npins
|
|
run-tests
|
|
test-loop
|
|
devmode
|
|
];
|
|
};
|
|
|
|
tests = with pkgs; with lib; runCommand "run-tests" { } ''
|
|
touch $out
|
|
${getExe nix-unit} ${./tests.nix} "$@"
|
|
'';
|
|
}
|