Commit a27315733afe4366e77105d0a3f1c3ba79296539
nixos installation files
use `npm run nix-make` to generate a newer node-packages.nix but be aware of the diff to default.nix. You mostlikly need to revert those. # Conflicts: # package-lock.jsonHenry committed on 10/15/2018, 3:48:56 PM
Parent: dbc0192c7e9be5790de350e90f4558546a99bc97
Files changed
package.json | changed |
default.nix | added |
package-lock.json | deleted |
node-env.nix | added |
node-packages.nix | added |
supplement.json | added |
supplement.nix | added |
package.json | ||
---|---|---|
@@ -50,9 +50,10 @@ | ||
50 | 50 … | "check-win": "node scripts/check-configuration-win.js", |
51 | 51 … | "setup-win": "node scripts/setup-win.js", |
52 | 52 … | "check": "node scripts/check-configuration.js", |
53 | 53 … | "setup": "node scripts/setup.js", |
54 | - "install": "node scripts/install.js" | |
54 … | + "install": "node scripts/install.js", | |
55 … | + "nix-make": "nix-shell -p nodePackages.node2nix --run 'node2nix -8 --supplement-input supplement.json --include-peer-dependencies'" | |
55 | 56 … | }, |
56 | 57 … | "optionalDependencies": { |
57 | 58 … | "mkdirp": "^0.5.1", |
58 | 59 … | "regedit": "^2.2.7" |
default.nix | ||
---|---|---|
@@ -1,0 +1,24 @@ | ||
1 … | +# This file has been generated by node2nix 1.6.0 | |
2 … | +# but has been edited to include the systrayhelper | |
3 … | + | |
4 … | +{ pkgs ? import ~/nixpkgs { inherit system; } | |
5 … | +, system ? builtins.currentSystem | |
6 … | +, nodejs ? pkgs."nodejs-8_x" | |
7 … | +, systrayhelper ? pkgs.systrayhelper | |
8 … | +}: | |
9 … | + | |
10 … | +let | |
11 … | + globalBuildInputs = pkgs.lib.attrValues (import ./supplement.nix { | |
12 … | + inherit nodeEnv; | |
13 … | + inherit (pkgs) fetchurl fetchgit; | |
14 … | + }) ++ [ systrayhelper ]; | |
15 … | + nodeEnv = import ./node-env.nix { | |
16 … | + inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; | |
17 … | + inherit nodejs; | |
18 … | + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; | |
19 … | + }; | |
20 … | +in | |
21 … | +import ./node-packages.nix { | |
22 … | + inherit (pkgs) fetchurl fetchgit; | |
23 … | + inherit nodeEnv globalBuildInputs; | |
24 … | +} |
package-lock.json | ||
---|---|---|
The diff is too large to show. Use a local git client to view these changes. Old file size: 233966 bytes New file size: 0 bytes |
node-env.nix | ||
---|---|---|
@@ -1,0 +1,542 @@ | ||
1 … | +# This file originates from node2nix | |
2 … | + | |
3 … | +{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}: | |
4 … | + | |
5 … | +let | |
6 … | + python = if nodejs ? python then nodejs.python else python2; | |
7 … | + | |
8 … | + # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise | |
9 … | + tarWrapper = runCommand "tarWrapper" {} '' | |
10 … | + mkdir -p $out/bin | |
11 … | + | |
12 … | + cat > $out/bin/tar <<EOF | |
13 … | + #! ${stdenv.shell} -e | |
14 … | + $(type -p tar) "\$@" --warning=no-unknown-keyword | |
15 … | + EOF | |
16 … | + | |
17 … | + chmod +x $out/bin/tar | |
18 … | + ''; | |
19 … | + | |
20 … | + # Function that generates a TGZ file from a NPM project | |
21 … | + buildNodeSourceDist = | |
22 … | + { name, version, src, ... }: | |
23 … | + | |
24 … | + stdenv.mkDerivation { | |
25 … | + name = "node-tarball-${name}-${version}"; | |
26 … | + inherit src; | |
27 … | + buildInputs = [ nodejs ]; | |
28 … | + buildPhase = '' | |
29 … | + export HOME=$TMPDIR | |
30 … | + tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts) | |
31 … | + ''; | |
32 … | + installPhase = '' | |
33 … | + mkdir -p $out/tarballs | |
34 … | + mv $tgzFile $out/tarballs | |
35 … | + mkdir -p $out/nix-support | |
36 … | + echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products | |
37 … | + ''; | |
38 … | + }; | |
39 … | + | |
40 … | + includeDependencies = {dependencies}: | |
41 … | + stdenv.lib.optionalString (dependencies != []) | |
42 … | + (stdenv.lib.concatMapStrings (dependency: | |
43 … | + '' | |
44 … | + # Bundle the dependencies of the package | |
45 … | + mkdir -p node_modules | |
46 … | + cd node_modules | |
47 … | + | |
48 … | + # Only include dependencies if they don't exist. They may also be bundled in the package. | |
49 … | + if [ ! -e "${dependency.name}" ] | |
50 … | + then | |
51 … | + ${composePackage dependency} | |
52 … | + fi | |
53 … | + | |
54 … | + cd .. | |
55 … | + '' | |
56 … | + ) dependencies); | |
57 … | + | |
58 … | + # Recursively composes the dependencies of a package | |
59 … | + composePackage = { name, packageName, src, dependencies ? [], ... }@args: | |
60 … | + '' | |
61 … | + DIR=$(pwd) | |
62 … | + cd $TMPDIR | |
63 … | + | |
64 … | + unpackFile ${src} | |
65 … | + | |
66 … | + # Make the base dir in which the target dependency resides first | |
67 … | + mkdir -p "$(dirname "$DIR/${packageName}")" | |
68 … | + | |
69 … | + if [ -f "${src}" ] | |
70 … | + then | |
71 … | + # Figure out what directory has been unpacked | |
72 … | + packageDir="$(find . -maxdepth 1 -type d | tail -1)" | |
73 … | + | |
74 … | + # Restore write permissions to make building work | |
75 … | + find "$packageDir" -type d -print0 | xargs -0 chmod u+x | |
76 … | + chmod -R u+w "$packageDir" | |
77 … | + | |
78 … | + # Move the extracted tarball into the output folder | |
79 … | + mv "$packageDir" "$DIR/${packageName}" | |
80 … | + elif [ -d "${src}" ] | |
81 … | + then | |
82 … | + # Get a stripped name (without hash) of the source directory. | |
83 … | + # On old nixpkgs it's already set internally. | |
84 … | + if [ -z "$strippedName" ] | |
85 … | + then | |
86 … | + strippedName="$(stripHash ${src})" | |
87 … | + fi | |
88 … | + | |
89 … | + # Restore write permissions to make building work | |
90 … | + chmod -R u+w "$strippedName" | |
91 … | + | |
92 … | + # Move the extracted directory into the output folder | |
93 … | + mv "$strippedName" "$DIR/${packageName}" | |
94 … | + fi | |
95 … | + | |
96 … | + # Unset the stripped name to not confuse the next unpack step | |
97 … | + unset strippedName | |
98 … | + | |
99 … | + # Include the dependencies of the package | |
100 … | + cd "$DIR/${packageName}" | |
101 … | + ${includeDependencies { inherit dependencies; }} | |
102 … | + cd .. | |
103 … | + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | |
104 … | + ''; | |
105 … | + | |
106 … | + pinpointDependencies = {dependencies, production}: | |
107 … | + let | |
108 … | + pinpointDependenciesFromPackageJSON = writeTextFile { | |
109 … | + name = "pinpointDependencies.js"; | |
110 … | + text = '' | |
111 … | + var fs = require('fs'); | |
112 … | + var path = require('path'); | |
113 … | + | |
114 … | + function resolveDependencyVersion(location, name) { | |
115 … | + if(location == process.env['NIX_STORE']) { | |
116 … | + return null; | |
117 … | + } else { | |
118 … | + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); | |
119 … | + | |
120 … | + if(fs.existsSync(dependencyPackageJSON)) { | |
121 … | + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); | |
122 … | + | |
123 … | + if(dependencyPackageObj.name == name) { | |
124 … | + return dependencyPackageObj.version; | |
125 … | + } | |
126 … | + } else { | |
127 … | + return resolveDependencyVersion(path.resolve(location, ".."), name); | |
128 … | + } | |
129 … | + } | |
130 … | + } | |
131 … | + | |
132 … | + function replaceDependencies(dependencies) { | |
133 … | + if(typeof dependencies == "object" && dependencies !== null) { | |
134 … | + for(var dependency in dependencies) { | |
135 … | + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); | |
136 … | + | |
137 … | + if(resolvedVersion === null) { | |
138 … | + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); | |
139 … | + } else { | |
140 … | + dependencies[dependency] = resolvedVersion; | |
141 … | + } | |
142 … | + } | |
143 … | + } | |
144 … | + } | |
145 … | + | |
146 … | + /* Read the package.json configuration */ | |
147 … | + var packageObj = JSON.parse(fs.readFileSync('./package.json')); | |
148 … | + | |
149 … | + /* Pinpoint all dependencies */ | |
150 … | + replaceDependencies(packageObj.dependencies); | |
151 … | + if(process.argv[2] == "development") { | |
152 … | + replaceDependencies(packageObj.devDependencies); | |
153 … | + } | |
154 … | + replaceDependencies(packageObj.optionalDependencies); | |
155 … | + | |
156 … | + /* Write the fixed package.json file */ | |
157 … | + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); | |
158 … | + ''; | |
159 … | + }; | |
160 … | + in | |
161 … | + '' | |
162 … | + node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"} | |
163 … | + | |
164 … | + ${stdenv.lib.optionalString (dependencies != []) | |
165 … | + '' | |
166 … | + if [ -d node_modules ] | |
167 … | + then | |
168 … | + cd node_modules | |
169 … | + ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} | |
170 … | + cd .. | |
171 … | + fi | |
172 … | + ''} | |
173 … | + ''; | |
174 … | + | |
175 … | + # Recursively traverses all dependencies of a package and pinpoints all | |
176 … | + # dependencies in the package.json file to the versions that are actually | |
177 … | + # being used. | |
178 … | + | |
179 … | + pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args: | |
180 … | + '' | |
181 … | + if [ -d "${packageName}" ] | |
182 … | + then | |
183 … | + cd "${packageName}" | |
184 … | + ${pinpointDependencies { inherit dependencies production; }} | |
185 … | + cd .. | |
186 … | + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | |
187 … | + fi | |
188 … | + ''; | |
189 … | + | |
190 … | + # Extract the Node.js source code which is used to compile packages with | |
191 … | + # native bindings | |
192 … | + nodeSources = runCommand "node-sources" {} '' | |
193 … | + tar --no-same-owner --no-same-permissions -xf ${nodejs.src} | |
194 … | + mv node-* $out | |
195 … | + ''; | |
196 … | + | |
197 … | + # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty) | |
198 … | + addIntegrityFieldsScript = writeTextFile { | |
199 … | + name = "addintegrityfields.js"; | |
200 … | + text = '' | |
201 … | + var fs = require('fs'); | |
202 … | + var path = require('path'); | |
203 … | + | |
204 … | + function augmentDependencies(baseDir, dependencies) { | |
205 … | + for(var dependencyName in dependencies) { | |
206 … | + var dependency = dependencies[dependencyName]; | |
207 … | + | |
208 … | + // Open package.json and augment metadata fields | |
209 … | + var packageJSONDir = path.join(baseDir, "node_modules", dependencyName); | |
210 … | + var packageJSONPath = path.join(packageJSONDir, "package.json"); | |
211 … | + | |
212 … | + if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored | |
213 … | + console.log("Adding metadata fields to: "+packageJSONPath); | |
214 … | + var packageObj = JSON.parse(fs.readFileSync(packageJSONPath)); | |
215 … | + | |
216 … | + if(dependency.integrity) { | |
217 … | + packageObj["_integrity"] = dependency.integrity; | |
218 … | + } else { | |
219 … | + packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads. | |
220 … | + } | |
221 … | + | |
222 … | + packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories. | |
223 … | + fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2)); | |
224 … | + } | |
225 … | + | |
226 … | + // Augment transitive dependencies | |
227 … | + if(dependency.dependencies !== undefined) { | |
228 … | + augmentDependencies(packageJSONDir, dependency.dependencies); | |
229 … | + } | |
230 … | + } | |
231 … | + } | |
232 … | + | |
233 … | + if(fs.existsSync("./package-lock.json")) { | |
234 … | + var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); | |
235 … | + | |
236 … | + if(packageLock.lockfileVersion !== 1) { | |
237 … | + process.stderr.write("Sorry, I only understand lock file version 1!\n"); | |
238 … | + process.exit(1); | |
239 … | + } | |
240 … | + | |
241 … | + if(packageLock.dependencies !== undefined) { | |
242 … | + augmentDependencies(".", packageLock.dependencies); | |
243 … | + } | |
244 … | + } | |
245 … | + ''; | |
246 … | + }; | |
247 … | + | |
248 … | + # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes | |
249 … | + reconstructPackageLock = writeTextFile { | |
250 … | + name = "addintegrityfields.js"; | |
251 … | + text = '' | |
252 … | + var fs = require('fs'); | |
253 … | + var path = require('path'); | |
254 … | + | |
255 … | + var packageObj = JSON.parse(fs.readFileSync("package.json")); | |
256 … | + | |
257 … | + var lockObj = { | |
258 … | + name: packageObj.name, | |
259 … | + version: packageObj.version, | |
260 … | + lockfileVersion: 1, | |
261 … | + requires: true, | |
262 … | + dependencies: {} | |
263 … | + }; | |
264 … | + | |
265 … | + function augmentPackageJSON(filePath, dependencies) { | |
266 … | + var packageJSON = path.join(filePath, "package.json"); | |
267 … | + if(fs.existsSync(packageJSON)) { | |
268 … | + var packageObj = JSON.parse(fs.readFileSync(packageJSON)); | |
269 … | + dependencies[packageObj.name] = { | |
270 … | + version: packageObj.version, | |
271 … | + integrity: "sha1-000000000000000000000000000=", | |
272 … | + dependencies: {} | |
273 … | + }; | |
274 … | + processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies); | |
275 … | + } | |
276 … | + } | |
277 … | + | |
278 … | + function processDependencies(dir, dependencies) { | |
279 … | + if(fs.existsSync(dir)) { | |
280 … | + var files = fs.readdirSync(dir); | |
281 … | + | |
282 … | + files.forEach(function(entry) { | |
283 … | + var filePath = path.join(dir, entry); | |
284 … | + var stats = fs.statSync(filePath); | |
285 … | + | |
286 … | + if(stats.isDirectory()) { | |
287 … | + if(entry.substr(0, 1) == "@") { | |
288 … | + // When we encounter a namespace folder, augment all packages belonging to the scope | |
289 … | + var pkgFiles = fs.readdirSync(filePath); | |
290 … | + | |
291 … | + pkgFiles.forEach(function(entry) { | |
292 … | + if(stats.isDirectory()) { | |
293 … | + var pkgFilePath = path.join(filePath, entry); | |
294 … | + augmentPackageJSON(pkgFilePath, dependencies); | |
295 … | + } | |
296 … | + }); | |
297 … | + } else { | |
298 … | + augmentPackageJSON(filePath, dependencies); | |
299 … | + } | |
300 … | + } | |
301 … | + }); | |
302 … | + } | |
303 … | + } | |
304 … | + | |
305 … | + processDependencies("node_modules", lockObj.dependencies); | |
306 … | + | |
307 … | + fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); | |
308 … | + ''; | |
309 … | + }; | |
310 … | + | |
311 … | + # Builds and composes an NPM package including all its dependencies | |
312 … | + buildNodePackage = | |
313 … | + { name | |
314 … | + , packageName | |
315 … | + , version | |
316 … | + , dependencies ? [] | |
317 … | + , buildInputs ? [] | |
318 … | + , production ? true | |
319 … | + , npmFlags ? "" | |
320 … | + , dontNpmInstall ? false | |
321 … | + , bypassCache ? false | |
322 … | + , preRebuild ? "" | |
323 … | + , dontStrip ? true | |
324 … | + , unpackPhase ? "true" | |
325 … | + , buildPhase ? "true" | |
326 … | + , ... }@args: | |
327 … | + | |
328 … | + let | |
329 … | + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; | |
330 … | + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ]; | |
331 … | + in | |
332 … | + stdenv.mkDerivation ({ | |
333 … | + name = "node-${name}-${version}"; | |
334 … | + buildInputs = [ tarWrapper python nodejs ] | |
335 … | + ++ stdenv.lib.optional (stdenv.isLinux) utillinux | |
336 … | + ++ stdenv.lib.optional (stdenv.isDarwin) libtool | |
337 … | + ++ buildInputs; | |
338 … | + | |
339 … | + inherit dontStrip; # Stripping may fail a build for some package deployments | |
340 … | + inherit dontNpmInstall preRebuild unpackPhase buildPhase; | |
341 … | + | |
342 … | + compositionScript = composePackage args; | |
343 … | + pinpointDependenciesScript = pinpointDependenciesOfPackage args; | |
344 … | + | |
345 … | + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; | |
346 … | + | |
347 … | + installPhase = '' | |
348 … | + # Create and enter a root node_modules/ folder | |
349 … | + mkdir -p $out/lib/node_modules | |
350 … | + cd $out/lib/node_modules | |
351 … | + | |
352 … | + # Compose the package and all its dependencies | |
353 … | + source $compositionScriptPath | |
354 … | + | |
355 … | + # Pinpoint the versions of all dependencies to the ones that are actually being used | |
356 … | + echo "pinpointing versions of dependencies..." | |
357 … | + source $pinpointDependenciesScriptPath | |
358 … | + | |
359 … | + # Patch the shebangs of the bundled modules to prevent them from | |
360 … | + # calling executables outside the Nix store as much as possible | |
361 … | + patchShebangs . | |
362 … | + | |
363 … | + # Deploy the Node.js package by running npm install. Since the | |
364 … | + # dependencies have been provided already by ourselves, it should not | |
365 … | + # attempt to install them again, which is good, because we want to make | |
366 … | + # it Nix's responsibility. If it needs to install any dependencies | |
367 … | + # anyway (e.g. because the dependency parameters are | |
368 … | + # incomplete/incorrect), it fails. | |
369 … | + # | |
370 … | + # The other responsibilities of NPM are kept -- version checks, build | |
371 … | + # steps, postprocessing etc. | |
372 … | + | |
373 … | + export HOME=$TMPDIR | |
374 … | + cd "${packageName}" | |
375 … | + runHook preRebuild | |
376 … | + | |
377 … | + ${stdenv.lib.optionalString bypassCache '' | |
378 … | + if [ ! -f package-lock.json ] | |
379 … | + then | |
380 … | + echo "No package-lock.json file found, reconstructing..." | |
381 … | + node ${reconstructPackageLock} | |
382 … | + fi | |
383 … | + | |
384 … | + node ${addIntegrityFieldsScript} | |
385 … | + ''} | |
386 … | + | |
387 … | + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild | |
388 … | + | |
389 … | + if [ "$dontNpmInstall" != "1" ] | |
390 … | + then | |
391 … | + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. | |
392 … | + rm -f npm-shrinkwrap.json | |
393 … | + | |
394 … | + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install | |
395 … | + fi | |
396 … | + | |
397 … | + # Create symlink to the deployed executable folder, if applicable | |
398 … | + if [ -d "$out/lib/node_modules/.bin" ] | |
399 … | + then | |
400 … | + ln -s $out/lib/node_modules/.bin $out/bin | |
401 … | + fi | |
402 … | + | |
403 … | + # Create symlinks to the deployed manual page folders, if applicable | |
404 … | + if [ -d "$out/lib/node_modules/${packageName}/man" ] | |
405 … | + then | |
406 … | + mkdir -p $out/share | |
407 … | + for dir in "$out/lib/node_modules/${packageName}/man/"* | |
408 … | + do | |
409 … | + mkdir -p $out/share/man/$(basename "$dir") | |
410 … | + for page in "$dir"/* | |
411 … | + do | |
412 … | + ln -s $page $out/share/man/$(basename "$dir") | |
413 … | + done | |
414 … | + done | |
415 … | + fi | |
416 … | + | |
417 … | + # Run post install hook, if provided | |
418 … | + runHook postInstall | |
419 … | + ''; | |
420 … | + } // extraArgs); | |
421 … | + | |
422 … | + # Builds a development shell | |
423 … | + buildNodeShell = | |
424 … | + { name | |
425 … | + , packageName | |
426 … | + , version | |
427 … | + , src | |
428 … | + , dependencies ? [] | |
429 … | + , buildInputs ? [] | |
430 … | + , production ? true | |
431 … | + , npmFlags ? "" | |
432 … | + , dontNpmInstall ? false | |
433 … | + , bypassCache ? false | |
434 … | + , dontStrip ? true | |
435 … | + , unpackPhase ? "true" | |
436 … | + , buildPhase ? "true" | |
437 … | + , ... }@args: | |
438 … | + | |
439 … | + let | |
440 … | + forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; | |
441 … | + | |
442 … | + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; | |
443 … | + | |
444 … | + nodeDependencies = stdenv.mkDerivation ({ | |
445 … | + name = "node-dependencies-${name}-${version}"; | |
446 … | + | |
447 … | + buildInputs = [ tarWrapper python nodejs ] | |
448 … | + ++ stdenv.lib.optional (stdenv.isLinux) utillinux | |
449 … | + ++ stdenv.lib.optional (stdenv.isDarwin) libtool | |
450 … | + ++ buildInputs; | |
451 … | + | |
452 … | + inherit dontStrip; # Stripping may fail a build for some package deployments | |
453 … | + inherit dontNpmInstall unpackPhase buildPhase; | |
454 … | + | |
455 … | + includeScript = includeDependencies { inherit dependencies; }; | |
456 … | + pinpointDependenciesScript = pinpointDependenciesOfPackage args; | |
457 … | + | |
458 … | + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; | |
459 … | + | |
460 … | + installPhase = '' | |
461 … | + mkdir -p $out/${packageName} | |
462 … | + cd $out/${packageName} | |
463 … | + | |
464 … | + source $includeScriptPath | |
465 … | + | |
466 … | + # Create fake package.json to make the npm commands work properly | |
467 … | + cp ${src}/package.json . | |
468 … | + chmod 644 package.json | |
469 … | + ${stdenv.lib.optionalString bypassCache '' | |
470 … | + if [ -f ${src}/package-lock.json ] | |
471 … | + then | |
472 … | + cp ${src}/package-lock.json . | |
473 … | + fi | |
474 … | + ''} | |
475 … | + | |
476 … | + # Pinpoint the versions of all dependencies to the ones that are actually being used | |
477 … | + echo "pinpointing versions of dependencies..." | |
478 … | + cd .. | |
479 … | + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | |
480 … | + | |
481 … | + source $pinpointDependenciesScriptPath | |
482 … | + cd ${packageName} | |
483 … | + | |
484 … | + # Patch the shebangs of the bundled modules to prevent them from | |
485 … | + # calling executables outside the Nix store as much as possible | |
486 … | + patchShebangs . | |
487 … | + | |
488 … | + export HOME=$PWD | |
489 … | + | |
490 … | + ${stdenv.lib.optionalString bypassCache '' | |
491 … | + if [ ! -f package-lock.json ] | |
492 … | + then | |
493 … | + echo "No package-lock.json file found, reconstructing..." | |
494 … | + node ${reconstructPackageLock} | |
495 … | + fi | |
496 … | + | |
497 … | + node ${addIntegrityFieldsScript} | |
498 … | + ''} | |
499 … | + | |
500 … | + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild | |
501 … | + | |
502 … | + ${stdenv.lib.optionalString (!dontNpmInstall) '' | |
503 … | + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. | |
504 … | + rm -f npm-shrinkwrap.json | |
505 … | + | |
506 … | + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install | |
507 … | + ''} | |
508 … | + | |
509 … | + cd .. | |
510 … | + ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} | |
511 … | + | |
512 … | + mv ${packageName} lib | |
513 … | + ln -s $out/lib/node_modules/.bin $out/bin | |
514 … | + ''; | |
515 … | + } // extraArgs); | |
516 … | + in | |
517 … | + stdenv.mkDerivation { | |
518 … | + name = "node-shell-${name}-${version}"; | |
519 … | + | |
520 … | + buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ buildInputs; | |
521 … | + buildCommand = '' | |
522 … | + mkdir -p $out/bin | |
523 … | + cat > $out/bin/shell <<EOF | |
524 … | + #! ${stdenv.shell} -e | |
525 … | + $shellHook | |
526 … | + exec ${stdenv.shell} | |
527 … | + EOF | |
528 … | + chmod +x $out/bin/shell | |
529 … | + ''; | |
530 … | + | |
531 … | + # Provide the dependencies in a development shell through the NODE_PATH environment variable | |
532 … | + inherit nodeDependencies; | |
533 … | + shellHook = stdenv.lib.optionalString (dependencies != []) '' | |
534 … | + export NODE_PATH=$nodeDependencies/lib/node_modules | |
535 … | + ''; | |
536 … | + }; | |
537 … | +in | |
538 … | +{ | |
539 … | + buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist; | |
540 … | + buildNodePackage = stdenv.lib.makeOverridable buildNodePackage; | |
541 … | + buildNodeShell = stdenv.lib.makeOverridable buildNodeShell; | |
542 … | +} |
node-packages.nix | ||
---|---|---|
The diff is too large to show. Use a local git client to view these changes. Old file size: 0 bytes New file size: 213508 bytes |
supplement.nix | |||
---|---|---|---|
@@ -1,0 +1,502 @@ | |||
1 … | +# This file has been generated by node2nix 1.6.0. Do not edit! | ||
2 … | + | ||
3 … | +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: | ||
4 … | + | ||
5 … | +let | ||
6 … | + sources = { | ||
7 … | + "ansi-escapes-1.4.0" = { | ||
8 … | + name = "ansi-escapes"; | ||
9 … | + packageName = "ansi-escapes"; | ||
10 … | + version = "1.4.0"; | ||
11 … | + src = fetchurl { | ||
12 … | + url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz"; | ||
13 … | + sha1 = "d3a8a83b319aa67793662b13e761c7911422306e"; | ||
14 … | + }; | ||
15 … | + }; | ||
16 … | + "ansi-regex-2.1.1" = { | ||
17 … | + name = "ansi-regex"; | ||
18 … | + packageName = "ansi-regex"; | ||
19 … | + version = "2.1.1"; | ||
20 … | + src = fetchurl { | ||
21 … | + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; | ||
22 … | + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; | ||
23 … | + }; | ||
24 … | + }; | ||
25 … | + "ansi-regex-3.0.0" = { | ||
26 … | + name = "ansi-regex"; | ||
27 … | + packageName = "ansi-regex"; | ||
28 … | + version = "3.0.0"; | ||
29 … | + src = fetchurl { | ||
30 … | + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"; | ||
31 … | + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; | ||
32 … | + }; | ||
33 … | + }; | ||
34 … | + "ansi-styles-2.2.1" = { | ||
35 … | + name = "ansi-styles"; | ||
36 … | + packageName = "ansi-styles"; | ||
37 … | + version = "2.2.1"; | ||
38 … | + src = fetchurl { | ||
39 … | + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"; | ||
40 … | + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; | ||
41 … | + }; | ||
42 … | + }; | ||
43 … | + "babel-polyfill-6.23.0" = { | ||
44 … | + name = "babel-polyfill"; | ||
45 … | + packageName = "babel-polyfill"; | ||
46 … | + version = "6.23.0"; | ||
47 … | + src = fetchurl { | ||
48 … | + url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz"; | ||
49 … | + sha1 = "8364ca62df8eafb830499f699177466c3b03499d"; | ||
50 … | + }; | ||
51 … | + }; | ||
52 … | + "babel-runtime-6.26.0" = { | ||
53 … | + name = "babel-runtime"; | ||
54 … | + packageName = "babel-runtime"; | ||
55 … | + version = "6.26.0"; | ||
56 … | + src = fetchurl { | ||
57 … | + url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz"; | ||
58 … | + sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe"; | ||
59 … | + }; | ||
60 … | + }; | ||
61 … | + "chalk-1.1.3" = { | ||
62 … | + name = "chalk"; | ||
63 … | + packageName = "chalk"; | ||
64 … | + version = "1.1.3"; | ||
65 … | + src = fetchurl { | ||
66 … | + url = "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"; | ||
67 … | + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; | ||
68 … | + }; | ||
69 … | + }; | ||
70 … | + "chardet-0.4.2" = { | ||
71 … | + name = "chardet"; | ||
72 … | + packageName = "chardet"; | ||
73 … | + version = "0.4.2"; | ||
74 … | + src = fetchurl { | ||
75 … | + url = "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz"; | ||
76 … | + sha1 = "b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"; | ||
77 … | + }; | ||
78 … | + }; | ||
79 … | + "cli-cursor-2.1.0" = { | ||
80 … | + name = "cli-cursor"; | ||
81 … | + packageName = "cli-cursor"; | ||
82 … | + version = "2.1.0"; | ||
83 … | + src = fetchurl { | ||
84 … | + url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz"; | ||
85 … | + sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; | ||
86 … | + }; | ||
87 … | + }; | ||
88 … | + "cli-width-2.2.0" = { | ||
89 … | + name = "cli-width"; | ||
90 … | + packageName = "cli-width"; | ||
91 … | + version = "2.2.0"; | ||
92 … | + src = fetchurl { | ||
93 … | + url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz"; | ||
94 … | + sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639"; | ||
95 … | + }; | ||
96 … | + }; | ||
97 … | + "core-js-2.5.7" = { | ||
98 … | + name = "core-js"; | ||
99 … | + packageName = "core-js"; | ||
100 … | + version = "2.5.7"; | ||
101 … | + src = fetchurl { | ||
102 … | + url = "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz"; | ||
103 … | + sha512 = "RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="; | ||
104 … | + }; | ||
105 … | + }; | ||
106 … | + "encoding-0.1.12" = { | ||
107 … | + name = "encoding"; | ||
108 … | + packageName = "encoding"; | ||
109 … | + version = "0.1.12"; | ||
110 … | + src = fetchurl { | ||
111 … | + url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"; | ||
112 … | + sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb"; | ||
113 … | + }; | ||
114 … | + }; | ||
115 … | + "escape-string-regexp-1.0.5" = { | ||
116 … | + name = "escape-string-regexp"; | ||
117 … | + packageName = "escape-string-regexp"; | ||
118 … | + version = "1.0.5"; | ||
119 … | + src = fetchurl { | ||
120 … | + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; | ||
121 … | + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; | ||
122 … | + }; | ||
123 … | + }; | ||
124 … | + "external-editor-2.2.0" = { | ||
125 … | + name = "external-editor"; | ||
126 … | + packageName = "external-editor"; | ||
127 … | + version = "2.2.0"; | ||
128 … | + src = fetchurl { | ||
129 … | + url = "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz"; | ||
130 … | + sha512 = "bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A=="; | ||
131 … | + }; | ||
132 … | + }; | ||
133 … | + "figures-2.0.0" = { | ||
134 … | + name = "figures"; | ||
135 … | + packageName = "figures"; | ||
136 … | + version = "2.0.0"; | ||
137 … | + src = fetchurl { | ||
138 … | + url = "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz"; | ||
139 … | + sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"; | ||
140 … | + }; | ||
141 … | + }; | ||
142 … | + "has-ansi-2.0.0" = { | ||
143 … | + name = "has-ansi"; | ||
144 … | + packageName = "has-ansi"; | ||
145 … | + version = "2.0.0"; | ||
146 … | + src = fetchurl { | ||
147 … | + url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; | ||
148 … | + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; | ||
149 … | + }; | ||
150 … | + }; | ||
151 … | + "iconv-lite-0.4.24" = { | ||
152 … | + name = "iconv-lite"; | ||
153 … | + packageName = "iconv-lite"; | ||
154 … | + version = "0.4.24"; | ||
155 … | + src = fetchurl { | ||
156 … | + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; | ||
157 … | + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; | ||
158 … | + }; | ||
159 … | + }; | ||
160 … | + "inquirer-3.0.6" = { | ||
161 … | + name = "inquirer"; | ||
162 … | + packageName = "inquirer"; | ||
163 … | + version = "3.0.6"; | ||
164 … | + src = fetchurl { | ||
165 … | + url = "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz"; | ||
166 … | + sha1 = "e04aaa9d05b7a3cb9b0f407d04375f0447190347"; | ||
167 … | + }; | ||
168 … | + }; | ||
169 … | + "is-fullwidth-code-point-2.0.0" = { | ||
170 … | + name = "is-fullwidth-code-point"; | ||
171 … | + packageName = "is-fullwidth-code-point"; | ||
172 … | + version = "2.0.0"; | ||
173 … | + src = fetchurl { | ||
174 … | + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"; | ||
175 … | + sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f"; | ||
176 … | + }; | ||
177 … | + }; | ||
178 … | + "is-promise-2.1.0" = { | ||
179 … | + name = "is-promise"; | ||
180 … | + packageName = "is-promise"; | ||
181 … | + version = "2.1.0"; | ||
182 … | + src = fetchurl { | ||
183 … | + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"; | ||
184 … | + sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"; | ||
185 … | + }; | ||
186 … | + }; | ||
187 … | + "is-stream-1.1.0" = { | ||
188 … | + name = "is-stream"; | ||
189 … | + packageName = "is-stream"; | ||
190 … | + version = "1.1.0"; | ||
191 … | + src = fetchurl { | ||
192 … | + url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"; | ||
193 … | + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; | ||
194 … | + }; | ||
195 … | + }; | ||
196 … | + "lodash-4.17.11" = { | ||
197 … | + name = "lodash"; | ||
198 … | + packageName = "lodash"; | ||
199 … | + version = "4.17.11"; | ||
200 … | + src = fetchurl { | ||
201 … | + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz"; | ||
202 … | + sha512 = "cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="; | ||
203 … | + }; | ||
204 … | + }; | ||
205 … | + "mimic-fn-1.2.0" = { | ||
206 … | + name = "mimic-fn"; | ||
207 … | + packageName = "mimic-fn"; | ||
208 … | + version = "1.2.0"; | ||
209 … | + src = fetchurl { | ||
210 … | + url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz"; | ||
211 … | + sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="; | ||
212 … | + }; | ||
213 … | + }; | ||
214 … | + "minimist-1.2.0" = { | ||
215 … | + name = "minimist"; | ||
216 … | + packageName = "minimist"; | ||
217 … | + version = "1.2.0"; | ||
218 … | + src = fetchurl { | ||
219 … | + url = "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"; | ||
220 … | + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; | ||
221 … | + }; | ||
222 … | + }; | ||
223 … | + "mute-stream-0.0.7" = { | ||
224 … | + name = "mute-stream"; | ||
225 … | + packageName = "mute-stream"; | ||
226 … | + version = "0.0.7"; | ||
227 … | + src = fetchurl { | ||
228 … | + url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz"; | ||
229 … | + sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"; | ||
230 … | + }; | ||
231 … | + }; | ||
232 … | + "node-fetch-1.6.3" = { | ||
233 … | + name = "node-fetch"; | ||
234 … | + packageName = "node-fetch"; | ||
235 … | + version = "1.6.3"; | ||
236 … | + src = fetchurl { | ||
237 … | + url = "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz"; | ||
238 … | + sha1 = "dc234edd6489982d58e8f0db4f695029abcd8c04"; | ||
239 … | + }; | ||
240 … | + }; | ||
241 … | + "object-assign-4.1.1" = { | ||
242 … | + name = "object-assign"; | ||
243 … | + packageName = "object-assign"; | ||
244 … | + version = "4.1.1"; | ||
245 … | + src = fetchurl { | ||
246 … | + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; | ||
247 … | + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; | ||
248 … | + }; | ||
249 … | + }; | ||
250 … | + "onetime-2.0.1" = { | ||
251 … | + name = "onetime"; | ||
252 … | + packageName = "onetime"; | ||
253 … | + version = "2.0.1"; | ||
254 … | + src = fetchurl { | ||
255 … | + url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz"; | ||
256 … | + sha1 = "067428230fd67443b2794b22bba528b6867962d4"; | ||
257 … | + }; | ||
258 … | + }; | ||
259 … | + "opn-4.0.2" = { | ||
260 … | + name = "opn"; | ||
261 … | + packageName = "opn"; | ||
262 … | + version = "4.0.2"; | ||
263 … | + src = fetchurl { | ||
264 … | + url = "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz"; | ||
265 … | + sha1 = "7abc22e644dff63b0a96d5ab7f2790c0f01abc95"; | ||
266 … | + }; | ||
267 … | + }; | ||
268 … | + "os-tmpdir-1.0.2" = { | ||
269 … | + name = "os-tmpdir"; | ||
270 … | + packageName = "os-tmpdir"; | ||
271 … | + version = "1.0.2"; | ||
272 … | + src = fetchurl { | ||
273 … | + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; | ||
274 … | + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; | ||
275 … | + }; | ||
276 … | + }; | ||
277 … | + "pinkie-2.0.4" = { | ||
278 … | + name = "pinkie"; | ||
279 … | + packageName = "pinkie"; | ||
280 … | + version = "2.0.4"; | ||
281 … | + src = fetchurl { | ||
282 … | + url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"; | ||
283 … | + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; | ||
284 … | + }; | ||
285 … | + }; | ||
286 … | + "pinkie-promise-2.0.1" = { | ||
287 … | + name = "pinkie-promise"; | ||
288 … | + packageName = "pinkie-promise"; | ||
289 … | + version = "2.0.1"; | ||
290 … | + src = fetchurl { | ||
291 … | + url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; | ||
292 … | + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; | ||
293 … | + }; | ||
294 … | + }; | ||
295 … | + "regenerator-runtime-0.10.5" = { | ||
296 … | + name = "regenerator-runtime"; | ||
297 … | + packageName = "regenerator-runtime"; | ||
298 … | + version = "0.10.5"; | ||
299 … | + src = fetchurl { | ||
300 … | + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz"; | ||
301 … | + sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658"; | ||
302 … | + }; | ||
303 … | + }; | ||
304 … | + "regenerator-runtime-0.11.1" = { | ||
305 … | + name = "regenerator-runtime"; | ||
306 … | + packageName = "regenerator-runtime"; | ||
307 … | + version = "0.11.1"; | ||
308 … | + src = fetchurl { | ||
309 … | + url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"; | ||
310 … | + sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="; | ||
311 … | + }; | ||
312 … | + }; | ||
313 … | + "restore-cursor-2.0.0" = { | ||
314 … | + name = "restore-cursor"; | ||
315 … | + packageName = "restore-cursor"; | ||
316 … | + version = "2.0.0"; | ||
317 … | + src = fetchurl { | ||
318 … | + url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz"; | ||
319 … | + sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; | ||
320 … | + }; | ||
321 … | + }; | ||
322 … | + "run-async-2.3.0" = { | ||
323 … | + name = "run-async"; | ||
324 … | + packageName = "run-async"; | ||
325 … | + version = "2.3.0"; | ||
326 … | + src = fetchurl { | ||
327 … | + url = "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz"; | ||
328 … | + sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"; | ||
329 … | + }; | ||
330 … | + }; | ||
331 … | + "rx-4.1.0" = { | ||
332 … | + name = "rx"; | ||
333 … | + packageName = "rx"; | ||
334 … | + version = "4.1.0"; | ||
335 … | + src = fetchurl { | ||
336 … | + url = "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz"; | ||
337 … | + sha1 = "a5f13ff79ef3b740fe30aa803fb09f98805d4782"; | ||
338 … | + }; | ||
339 … | + }; | ||
340 … | + "safer-buffer-2.1.2" = { | ||
341 … | + name = "safer-buffer"; | ||
342 … | + packageName = "safer-buffer"; | ||
343 … | + version = "2.1.2"; | ||
344 … | + src = fetchurl { | ||
345 … | + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; | ||
346 … | + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; | ||
347 … | + }; | ||
348 … | + }; | ||
349 … | + "signal-exit-3.0.2" = { | ||
350 … | + name = "signal-exit"; | ||
351 … | + packageName = "signal-exit"; | ||
352 … | + version = "3.0.2"; | ||
353 … | + src = fetchurl { | ||
354 … | + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"; | ||
355 … | + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; | ||
356 … | + }; | ||
357 … | + }; | ||
358 … | + "string-width-2.1.1" = { | ||
359 … | + name = "string-width"; | ||
360 … | + packageName = "string-width"; | ||
361 … | + version = "2.1.1"; | ||
362 … | + src = fetchurl { | ||
363 … | + url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"; | ||
364 … | + sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="; | ||
365 … | + }; | ||
366 … | + }; | ||
367 … | + "strip-ansi-3.0.1" = { | ||
368 … | + name = "strip-ansi"; | ||
369 … | + packageName = "strip-ansi"; | ||
370 … | + version = "3.0.1"; | ||
371 … | + src = fetchurl { | ||
372 … | + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; | ||
373 … | + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; | ||
374 … | + }; | ||
375 … | + }; | ||
376 … | + "strip-ansi-4.0.0" = { | ||
377 … | + name = "strip-ansi"; | ||
378 … | + packageName = "strip-ansi"; | ||
379 … | + version = "4.0.0"; | ||
380 … | + src = fetchurl { | ||
381 … | + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"; | ||
382 … | + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; | ||
383 … | + }; | ||
384 … | + }; | ||
385 … | + "supports-color-2.0.0" = { | ||
386 … | + name = "supports-color"; | ||
387 … | + packageName = "supports-color"; | ||
388 … | + version = "2.0.0"; | ||
389 … | + src = fetchurl { | ||
390 … | + url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"; | ||
391 … | + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; | ||
392 … | + }; | ||
393 … | + }; | ||
394 … | + "through-2.3.8" = { | ||
395 … | + name = "through"; | ||
396 … | + packageName = "through"; | ||
397 … | + version = "2.3.8"; | ||
398 … | + src = fetchurl { | ||
399 … | + url = "http://registry.npmjs.org/through/-/through-2.3.8.tgz"; | ||
400 … | + sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; | ||
401 … | + }; | ||
402 … | + }; | ||
403 … | + "tmp-0.0.33" = { | ||
404 … | + name = "tmp"; | ||
405 … | + packageName = "tmp"; | ||
406 … | + version = "0.0.33"; | ||
407 … | + src = fetchurl { | ||
408 … | + url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz"; | ||
409 … | + sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="; | ||
410 … | + }; | ||
411 … | + }; | ||
412 … | + }; | ||
413 … | +in | ||
414 … | +{ | ||
415 … | + opencollective = nodeEnv.buildNodePackage { | ||
416 … | + name = "opencollective"; | ||
417 … | + packageName = "opencollective"; | ||
418 … | + version = "1.0.3"; | ||
419 … | + src = fetchurl { | ||
420 … | + url = "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz"; | ||
421 … | + sha1 = "aee6372bc28144583690c3ca8daecfc120dd0ef1"; | ||
422 … | + }; | ||
423 … | + dependencies = [ | ||
424 … | + sources."ansi-escapes-1.4.0" | ||
425 … | + sources."ansi-regex-2.1.1" | ||
426 … | + sources."ansi-styles-2.2.1" | ||
427 … | + sources."babel-polyfill-6.23.0" | ||
428 … | + (sources."babel-runtime-6.26.0" // { | ||
429 … | + dependencies = [ | ||
430 … | + sources."regenerator-runtime-0.11.1" | ||
431 … | + ]; | ||
432 … | + }) | ||
433 … | + sources."chalk-1.1.3" | ||
434 … | + sources."chardet-0.4.2" | ||
435 … | + sources."cli-cursor-2.1.0" | ||
436 … | + sources."cli-width-2.2.0" | ||
437 … | + sources."core-js-2.5.7" | ||
438 … | + sources."encoding-0.1.12" | ||
439 … | + sources."escape-string-regexp-1.0.5" | ||
440 … | + sources."external-editor-2.2.0" | ||
441 … | + sources."figures-2.0.0" | ||
442 … | + sources."has-ansi-2.0.0" | ||
443 … | + sources."iconv-lite-0.4.24" | ||
444 … | + sources."inquirer-3.0.6" | ||
445 … | + sources."is-fullwidth-code-point-2.0.0" | ||
446 … | + sources."is-promise-2.1.0" | ||
447 … | + sources."is-stream-1.1.0" | ||
448 … | + sources."lodash-4.17.11" | ||
449 … | + sources."mimic-fn-1.2.0" | ||
450 … | + sources."minimist-1.2.0" | ||
451 … | + sources."mute-stream-0.0.7" | ||
452 … | + sources."node-fetch-1.6.3" | ||
453 … | + sources."object-assign-4.1.1" | ||
454 … | + sources."onetime-2.0.1" | ||
455 … | + sources."opn-4.0.2" | ||
456 … | + sources."os-tmpdir-1.0.2" | ||
457 … | + sources."pinkie-2.0.4" | ||
458 … | + sources."pinkie-promise-2.0.1" | ||
459 … | + sources."regenerator-runtime-0.10.5" | ||
460 … | + sources."restore-cursor-2.0.0" | ||
461 … | + sources."run-async-2.3.0" | ||
462 … | + sources."rx-4.1.0" | ||
463 … | + sources."safer-buffer-2.1.2" | ||
464 … | + sources."signal-exit-3.0.2" | ||
465 … | + (sources."string-width-2.1.1" // { | ||
466 … | + dependencies = [ | ||
467 … | + sources."ansi-regex-3.0.0" | ||
468 … | + sources."strip-ansi-4.0.0" | ||
469 … | + ]; | ||
470 … | + }) | ||
471 … | + sources."strip-ansi-3.0.1" | ||
472 … | + sources."supports-color-2.0.0" | ||
473 … | + sources."through-2.3.8" | ||
474 … | + sources."tmp-0.0.33" | ||
475 … | + ]; | ||
476 … | + buildInputs = globalBuildInputs; | ||
477 … | + meta = { | ||
478 … | + description = "Official Command Line Interface for Open Collective"; | ||
479 … | + homepage = "https://github.com/opencollective/opencollective-cli#readme"; | ||
480 … | + license = "MIT"; | ||
481 … | + }; | ||
482 … | + production = true; | ||
483 … | + bypassCache = true; | ||
484 … | + }; | ||
485 … | + node-gyp-build = nodeEnv.buildNodePackage { | ||
486 … | + name = "node-gyp-build"; | ||
487 … | + packageName = "node-gyp-build"; | ||
488 … | + version = "3.4.0"; | ||
489 … | + src = fetchurl { | ||
490 … | + url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.4.0.tgz"; | ||
491 … | + sha512 = "YoviGBJYGrPdLOKDIQB0sKxuKy/EEsxzooNkOZak4vSTKT/qH0Pa6dj3t1MJjEQGsefih61IyHDmO1WW7xOFfw=="; | ||
492 … | + }; | ||
493 … | + buildInputs = globalBuildInputs; | ||
494 … | + meta = { | ||
495 … | + description = "Build tool and bindings loader for node-gyp that supports prebuilds"; | ||
496 … | + homepage = https://github.com/mafintosh/node-gyp-build; | ||
497 … | + license = "MIT"; | ||
498 … | + }; | ||
499 … | + production = true; | ||
500 … | + bypassCache = true; | ||
501 … | + }; | ||
502 … | +} |
Built with git-ssb-web