aboutsummaryrefslogtreecommitdiffhomepage
path: root/preinstall.js
diff options
context:
space:
mode:
authorCyril Sobierajewicz <cyril.sobierajewicz@fretlink.com>2019-05-17 13:39:14 +0200
committerCyril Sobierajewicz <cyril.sobierajewicz@fretlink.com>2019-05-20 13:51:27 +0200
commita4e6dec5fcffa5d51a96722a07668bab02336d5f (patch)
tree07c8178054cab431d6347c21ca7298248c45845a /preinstall.js
parentad22b841da176ee40686f04cc70ceaca51da1925 (diff)
downloadnode-dhall-json-bin-a4e6dec5fcffa5d51a96722a07668bab02336d5f.tar.gz
node-dhall-json-bin-a4e6dec5fcffa5d51a96722a07668bab02336d5f.tar.zst
node-dhall-json-bin-a4e6dec5fcffa5d51a96722a07668bab02336d5f.zip
Download `dhall-json` from `dhall-lang/dhall-haskell` releases
Diffstat (limited to 'preinstall.js')
-rw-r--r--preinstall.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/preinstall.js b/preinstall.js
new file mode 100644
index 0000000..1b859fc
--- /dev/null
+++ b/preinstall.js
@@ -0,0 +1,23 @@
1"use strict";
2
3const { https } = require("follow-redirects");
4const tar = require("tar");
5const unbz2 = require("unbzip2-stream");
6
7const pkg = require("./package.json");
8
9const trim = str => str && String(str).trim();
10
11const dhallVersion = trim(pkg["dhall-version"] || process.env.DHALL_VERSION);
12if (!dhallVersion) throw new Error("Missing DHALL_VERSION environment variable.");
13
14const dhallJsonVersion = trim(pkg["dhall-json-version"] || process.env.DHALL_JSON_VERSION);
15if (!dhallJsonVersion) throw new Error("Missing DHALL_JSON_VERSION environment variable.");
16
17const release = `https://github.com/dhall-lang/dhall-haskell/releases/download/${dhallVersion}/dhall-json-${dhallJsonVersion}`;
18
19const url = `${release}-x86_64-linux.tar.bz2`;
20https.get(url, res => {
21 if (res.statusCode >= 400) throw new Error(`Error fetching ${url}: ${res.statusMessage}`);
22 res.pipe(unbz2()).pipe(tar.x({ C: __dirname }));
23});