forked from avh4/binwrap
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
82 lines (75 loc) · 1.89 KB
/
test.js
File metadata and controls
82 lines (75 loc) · 1.89 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
var axios = require("axios");
// https://nodejs.org/api/os.html#os_os_platform
var validPlatforms = {
aix: true,
darwin: true,
freebsd: true,
linux: true,
openbsd: true,
sunos: true,
win32: true,
android: true,
};
// https://nodejs.org/api/os.html#os_os_arch
var validArchs = {
arm: true,
arm64: true,
ia32: true,
mips: true,
mipsel: true,
ppc: true,
ppc64: true,
s390: true,
s390x: true,
x32: true,
x64: true,
};
module.exports = function test(config) {
var errors = [];
var chain = Object.keys(config.urls).reduce(function (p, buildId) {
var url = config.urls[buildId];
var displayUrl = "[" + buildId + "] " + url;
var target = buildId.split("-");
if (!validPlatforms[target[0]]) {
console.log(
"ERROR: A URL is provided for an unknown nodejs platform: " + target[0]
);
process.exit(1);
}
if (!validArchs[target[1]]) {
console.log(
"ERROR: A URL is provided for an unknown nodejs arch: " + target[1]
);
process.exit(1);
}
if (url.slice(0, 5) === "http:") {
console.log(
"WARNING: Binary is published at an insecure URL (using https is recommended): " +
displayUrl
);
}
return p.then(function () {
return axios
.get(url)
.then(function () {
console.log("OKAY: " + displayUrl);
})
.catch((error) => {
console.error(error);
errors.push(displayUrl);
});
});
}, Promise.resolve());
return chain.then(function () {
if (errors.length > 0) {
console.log("There were errors when validating your published packages.");
console.log(
"ERROR: The following URLs (specified in your binwrap config) could not be downloaded (see details above):"
);
errors.forEach(function (e) {
console.log(" - " + e);
});
process.exit(1);
}
});
};