GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fork-nodegit-nodegit/utils/acquireOpenSSL.js at master · marbug/fork-nodegit-nodegit

Expand file tree

/

acquireOpenSSL.js

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
90 lines (78 loc) · 2.49 KB
/

acquireOpenSSL.js

Copy path

File metadata and controls

90 lines (78 loc) · 2.49 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
const fse = require("fs-extra");
const path = require("path");
const R = require("ramda");
const request = require("request-promise-native");
const stream = require("stream");
const tar = require("tar-fs");
const zlib = require("zlib");
const vendorPath = path.resolve(__dirname, "..", "vendor");
const distrosFilePath = path.join(vendorPath, "static_config", "openssl_distributions.json");
const extractPath = path.join(vendorPath, "openssl");
const getOSName = () => {
if (process.platform === "win32") {
if (process.arch === "x64") {
return "win64";
} else {
return "win32";
}
} else if (process.platform === "darwin") {
return "macOS";
} else {
// We only discover distros for Mac and Windows. We don't care about any other OS.
return "unknown";
}
};
const getCompilerVersion = () => {
// TODO: Get actual compiler version. For now, just assume latest compiler for distros in openssl_distributions.js
const osName = getOSName();
if (osName === "win32" || osName === "win64") {
return "vs14";
} else if (osName === "macOS") {
return "clang-9";
} else {
// We only discover distros for Mac and Windows. We don't care about any other OS.
return "unknown";
}
};
// TODO: Determine if we are GYPing in Debug
const getIsDebug = () => false;
const getMatchingDistributionName = () =>
`${getOSName()}-${getCompilerVersion()}-static${getIsDebug() ? "-debug" : "-release"}`;
const getDistributionsConfig = () =>
fse.readFile(distrosFilePath, "utf8")
.then(JSON.parse);
const getDistrbutionURLFromConfig = (config) => {
const distName = getMatchingDistributionName();
const distURL = R.propOr(null, distName, config);
if (!distURL) {
return Promise.reject(new Error("No matching distribution for this operating system"));
}
return Promise.resolve(distURL);
};
const fetchFileFromURL = (distUrl) => request({
method: "GET",
uri: distUrl,
encoding: null,
gzip: true
});
const extractFile = (body) => new Promise((resolve, reject) => {
const streamableBody = new stream.Readable();
streamableBody.push(body);
streamableBody.push(null);
streamableBody
.pipe(zlib.createGunzip())
.on("error", reject)
.pipe(tar.extract(extractPath))
.on("error", reject)
.on("close", resolve);
});
const acquireOpenSSL = () =>
getDistributionsConfig()
.then(getDistrbutionURLFromConfig)
.then(fetchFileFromURL)
.then(extractFile)
.catch((e) => {
console.error(e);
process.exit(1);
});
acquireOpenSSL();
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.