diff options
Diffstat (limited to 'pkgs/development/tools/purescript/spago/default.nix')
-rw-r--r-- | pkgs/development/tools/purescript/spago/default.nix | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/development/tools/purescript/spago/default.nix index 2fc5efedb20..f5720837d79 100644 --- a/pkgs/development/tools/purescript/spago/default.nix +++ b/pkgs/development/tools/purescript/spago/default.nix @@ -1,14 +1,53 @@ -{ haskellPackages -, haskell +{ haskell +, haskellPackages , lib +, nodejs +, purescript +, runCommand }: -haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: { - maintainers = (oldAttrs.maintainers or []) ++ [ - lib.maintainers.cdepillabout - ]; +let + spago = + haskell.lib.justStaticExecutables + (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: { + maintainers = (oldAttrs.maintainers or []) ++ [ + lib.maintainers.cdepillabout + ]; + })); +in +spago.overrideAttrs (oldAttrs: { passthru = (oldAttrs.passthru or {}) // { updateScript = ./update.sh; + + # These tests can be run with the following command. The tests access the + # network, so they cannot be run in the nix sandbox. sudo is needed in + # order to change the sandbox option. + # + # $ sudo nix-build -A spago.passthru.tests --option sandbox relaxed + # + tests = + runCommand + "spago-tests" + { + __noChroot = true; + nativeBuildInputs = [ + nodejs + purescript + spago + ]; + } + '' + # spago expects HOME to be set because it creates a cache file under + # home. + HOME=$(pwd) + + spago --verbose init + spago --verbose build + spago --verbose test + + touch $out + ''; }; -})) +}) + |