4 url = "github:purescript/registry";
8 url = "github:purescript/package-sets";
12 outputs = { self, registry, package-sets }: {
13 lib.spago = { pkgs, spago ? pkgs.spago, purs ? pkgs.purs }:
14 { src, main ? "Main" }:
16 projectSource = pkgs.runCommand "projectSource" { } ''
18 ln -s ${src}/spago.dhall $out/spago.dhall
19 ln -s ${package-sets}/src/packages.dhall $out/packages.dhall
21 project = pkgs.dhallToNix "${projectSource}/spago.dhall";
22 transitiveDependencies = builtins.genericClosure {
23 startSet = builtins.map (dep: {
25 val = project.packages.${dep};
26 }) project.dependencies;
27 operator = { val, ... }:
30 val = project.packages.${dep};
33 deps = builtins.map (dep:
35 meta = builtins.fromJSON
36 (builtins.readFile "${registry}/metadata/${dep.key}.json");
37 v = pkgs.lib.strings.removePrefix "v" dep.val.version;
38 in pkgs.stdenv.mkDerivation {
43 "https://packages.registry.purescript.org/${dep.key}/${v}.tar.gz";
44 hash = meta.published.${v}.hash;
49 }) transitiveDependencies;
50 output = pkgs.runCommand "output" { buildInputs = [ purs ]; } ''
51 purs compile "${src}/**/*.purs" ${
53 (builtins.map (dep: ''"${dep}/src/**/*.purs"'') deps)
56 in pkgs.runCommand "${main}.js" {
57 buildInputs = [ spago purs pkgs.git pkgs.esbuild ];
59 ln -s ${projectSource}/packages.dhall packages.dhall
60 ln -s ${projectSource}/spago.dhall spago.dhall
61 ln -s ${output} output
62 spago --global-cache skip bundle-app --no-install --no-build --minify --main ${main} --to $out
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list