-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathpurescript-backend-optimizer.nix
More file actions
126 lines (118 loc) · 2.82 KB
/
purescript-backend-optimizer.nix
File metadata and controls
126 lines (118 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{ pkgs, system, ... }@args:
with builtins;
let
p = pkgs;
l = p.lib;
src = fetchGit {
url = "https://github.com/aristanetworks/purescript-backend-optimizer.git";
rev = "cd03c12e82ec80be45fbb0810e3fb9a312752512";
};
purs-nix = args.purs-nix {
inherit pkgs system;
overlays = [
(_: _: {
dodo-printer.src.registry.version = "2.2.1";
node-child-process.src.registry.version = "9.0.0";
node-fs-aff.src.registry.version = "9.1.0";
node-fs.src.registry.version = "8.1.0";
node-glob-basic = {
src.git = {
repo = "https://github.com/natefaubion/purescript-node-glob-basic.git";
rev = "d20f2866c3bb472c68848be5b153e28933c07a38";
};
info = {
version = "1.2.2";
dependencies = [
"aff"
"console"
"effect"
"lists"
"maybe"
"node-fs-aff"
"node-path"
"node-process"
"ordered-collections"
"strings"
];
};
};
node-process.src.registry.version = "10.0.0";
node-streams.src.registry.version = "7.0.0";
})
];
};
ps = purs-nix.purs {
dependencies = [
"aff"
"ansi"
"argonaut"
"argparse-basic"
"arrays"
"bifunctors"
"console"
"control"
"datetime"
"debug"
"dodo-printer"
"effect"
"either"
"enums"
"filterable"
"foldable-traversable"
"foreign-object"
"integers"
"language-cst-parser"
"lazy"
"lists"
"maybe"
"newtype"
"node-buffer"
"node-child-process"
"node-fs"
"node-fs-aff"
"node-glob-basic"
"node-path"
"node-process"
"node-streams"
"now"
"numbers"
"ordered-collections"
"orders"
"parallel"
"partial"
"posix-types"
"prelude"
"refs"
"safe-coerce"
"st"
"strings"
"transformers"
"tuples"
"unsafe-coerce"
];
dir = src;
srcs = [ "src" "backend-es/src" ];
};
package-json = l.importJSON "${src}/backend-es/package.json";
in
p.stdenvNoCC.mkDerivation {
pname = package-json.name;
inherit (package-json) version;
inherit src;
buildInputs = [ p.nodejs purs-nix.esbuild ];
buildPhase = ''
ln -s ${ps.output { codegen = "corefn,js"; }} output
node ./backend-es/index.dev.js bundle-module --int-tags -p node -t backend-es/bundle/index.js -y
'';
installPhase = ''
mkdir -p $out/{bin,lib}
cd backend-es
mv bundle index.js package.json runtime.js $out/lib
ln -s $out/lib/index.js $out/bin/purs-backend-es
'' + (import ./lib.nix p).make-completion "purs-backend-es"
[
"build"
"bundle-app"
"bundle-module"
];
}