@onkernel/cli 0.15.7 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install.js +1 -1
- package/lib.js +65 -29
- package/package.json +23 -23
- package/run-kernel.js +1 -1
package/install.js
CHANGED
package/lib.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
// This file was generated by GoReleaser. DO NOT EDIT.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import crypto from "crypto";
|
|
4
|
+
import http from "http";
|
|
5
|
+
import https from "https";
|
|
6
|
+
import path from "path";
|
|
7
|
+
import JSZip from "jszip";
|
|
8
|
+
import { x as tarExtract } from "tar";
|
|
9
|
+
import { ProxyAgent } from "proxy-agent";
|
|
10
|
+
import { spawnSync } from "child_process";
|
|
11
|
+
import { fileURLToPath } from "url";
|
|
12
|
+
|
|
13
|
+
const { archives, name, version } = JSON.parse(
|
|
14
|
+
fs.readFileSync(new URL("./package.json", import.meta.url), "utf8"),
|
|
15
|
+
);
|
|
11
16
|
|
|
12
17
|
const agent = new ProxyAgent();
|
|
18
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
13
19
|
|
|
14
20
|
const getArchive = () => {
|
|
15
21
|
let target = `${process.platform}-${process.arch}`;
|
|
@@ -30,7 +36,7 @@ async function extractTar(tarPath, binaries, dir, wrappedIn) {
|
|
|
30
36
|
)
|
|
31
37
|
: binaries;
|
|
32
38
|
|
|
33
|
-
await
|
|
39
|
+
await tarExtract({
|
|
34
40
|
file: tarPath,
|
|
35
41
|
cwd: dir,
|
|
36
42
|
filter: (path) => filesToExtract.includes(path),
|
|
@@ -173,7 +179,7 @@ const verify = (filename, checksum) => {
|
|
|
173
179
|
}
|
|
174
180
|
};
|
|
175
181
|
|
|
176
|
-
const download = async (url, filename) => {
|
|
182
|
+
const download = async (url, filename, maxRedirects = 10) => {
|
|
177
183
|
try {
|
|
178
184
|
console.log(`Downloading ${url} to ${filename}...`);
|
|
179
185
|
const dir = path.dirname(filename);
|
|
@@ -181,27 +187,56 @@ const download = async (url, filename) => {
|
|
|
181
187
|
fs.mkdirSync(dir, { recursive: true });
|
|
182
188
|
}
|
|
183
189
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
responseType: "stream",
|
|
188
|
-
timeout: 300000, // 5min
|
|
189
|
-
httpAgent: agent,
|
|
190
|
-
httpsAgent: agent,
|
|
191
|
-
});
|
|
190
|
+
return new Promise((resolve, reject) => {
|
|
191
|
+
const parsedUrl = new URL(url);
|
|
192
|
+
const mod = parsedUrl.protocol === "https:" ? https : http;
|
|
192
193
|
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
const request = mod.get(url, { agent }, (response) => {
|
|
195
|
+
if (
|
|
196
|
+
response.statusCode >= 300 &&
|
|
197
|
+
response.statusCode < 400 &&
|
|
198
|
+
response.headers.location
|
|
199
|
+
) {
|
|
200
|
+
if (maxRedirects <= 0) {
|
|
201
|
+
reject(new Error("Too many redirects"));
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
download(response.headers.location, filename, maxRedirects - 1)
|
|
205
|
+
.then(resolve)
|
|
206
|
+
.catch(reject);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
195
209
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
210
|
+
if (response.statusCode !== 200) {
|
|
211
|
+
reject(
|
|
212
|
+
new Error(
|
|
213
|
+
`HTTP ${response.statusCode}: ${response.statusMessage}`,
|
|
214
|
+
),
|
|
215
|
+
);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const writer = fs.createWriteStream(filename);
|
|
220
|
+
response.pipe(writer);
|
|
221
|
+
|
|
222
|
+
writer.on("finish", () => {
|
|
223
|
+
console.log(`Download complete: ${filename}`);
|
|
224
|
+
resolve(dir);
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
writer.on("error", (err) => {
|
|
228
|
+
console.error(`Error writing file: ${err.message}`);
|
|
229
|
+
reject(err);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
request.on("error", (err) => {
|
|
234
|
+
reject(new Error(`Request failed: ${err.message}`));
|
|
200
235
|
});
|
|
201
236
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
reject(
|
|
237
|
+
request.setTimeout(300000, () => {
|
|
238
|
+
request.destroy();
|
|
239
|
+
reject(new Error("Request timed out"));
|
|
205
240
|
});
|
|
206
241
|
});
|
|
207
242
|
} catch (err) {
|
|
@@ -216,8 +251,9 @@ function exists(archive) {
|
|
|
216
251
|
return archive.bins.every((bin) => fs.existsSync(path.join(binDir, bin)));
|
|
217
252
|
}
|
|
218
253
|
|
|
219
|
-
|
|
254
|
+
export {
|
|
220
255
|
install,
|
|
221
256
|
run,
|
|
222
257
|
getArchive,
|
|
258
|
+
download,
|
|
223
259
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onkernel/cli",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.17.0",
|
|
4
5
|
"description": "Kernel CLI",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"postinstall": "node install.js",
|
|
@@ -27,82 +28,81 @@
|
|
|
27
28
|
"kernel": "run-kernel.js"
|
|
28
29
|
},
|
|
29
30
|
"dependencies": {
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"tar": "^7.4.3"
|
|
31
|
+
"jszip": "3.10.1",
|
|
32
|
+
"proxy-agent": "8.0.1",
|
|
33
|
+
"tar": "7.5.13"
|
|
34
34
|
},
|
|
35
35
|
"archives": {
|
|
36
36
|
"darwin-arm64": {
|
|
37
|
-
"name": "kernel_0.
|
|
38
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
37
|
+
"name": "kernel_0.17.0_darwin_arm64.tar.gz",
|
|
38
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_darwin_arm64.tar.gz",
|
|
39
39
|
"bins": [
|
|
40
40
|
"kernel"
|
|
41
41
|
],
|
|
42
42
|
"format": "tar.gz",
|
|
43
43
|
"checksum": {
|
|
44
44
|
"algorithm": "sha256",
|
|
45
|
-
"digest": "
|
|
45
|
+
"digest": "7a222b96b92eb563a34db1c1c98c1eb9c22e30b0de6ca48f0fc19a8b4efc9cae"
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"darwin-x64": {
|
|
49
|
-
"name": "kernel_0.
|
|
50
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
49
|
+
"name": "kernel_0.17.0_darwin_amd64.tar.gz",
|
|
50
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_darwin_amd64.tar.gz",
|
|
51
51
|
"bins": [
|
|
52
52
|
"kernel"
|
|
53
53
|
],
|
|
54
54
|
"format": "tar.gz",
|
|
55
55
|
"checksum": {
|
|
56
56
|
"algorithm": "sha256",
|
|
57
|
-
"digest": "
|
|
57
|
+
"digest": "48fdf571cfe25fcbbe09e1e919e723dcc33af56a7bb804fc223b45007572a47c"
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"linux-arm64": {
|
|
61
|
-
"name": "kernel_0.
|
|
62
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
61
|
+
"name": "kernel_0.17.0_linux_arm64.tar.gz",
|
|
62
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_linux_arm64.tar.gz",
|
|
63
63
|
"bins": [
|
|
64
64
|
"kernel"
|
|
65
65
|
],
|
|
66
66
|
"format": "tar.gz",
|
|
67
67
|
"checksum": {
|
|
68
68
|
"algorithm": "sha256",
|
|
69
|
-
"digest": "
|
|
69
|
+
"digest": "4d02ce80eb866826708de26a36c6f221aa2f81ead381befc9d26a9faaba6ed72"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"linux-x64": {
|
|
73
|
-
"name": "kernel_0.
|
|
74
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
73
|
+
"name": "kernel_0.17.0_linux_amd64.tar.gz",
|
|
74
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_linux_amd64.tar.gz",
|
|
75
75
|
"bins": [
|
|
76
76
|
"kernel"
|
|
77
77
|
],
|
|
78
78
|
"format": "tar.gz",
|
|
79
79
|
"checksum": {
|
|
80
80
|
"algorithm": "sha256",
|
|
81
|
-
"digest": "
|
|
81
|
+
"digest": "e2f7944d923988d7f9482d260eae593c8dbdc42e54edcc88aa93281193438613"
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
"win32-arm64": {
|
|
85
|
-
"name": "kernel_0.
|
|
86
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
85
|
+
"name": "kernel_0.17.0_windows_arm64.tar.gz",
|
|
86
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_windows_arm64.tar.gz",
|
|
87
87
|
"bins": [
|
|
88
88
|
"kernel.exe"
|
|
89
89
|
],
|
|
90
90
|
"format": "tar.gz",
|
|
91
91
|
"checksum": {
|
|
92
92
|
"algorithm": "sha256",
|
|
93
|
-
"digest": "
|
|
93
|
+
"digest": "15e9c66e44ee3ec0f3c483899fc6078b08356cc37cef9338e7b84e3feec66c23"
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
96
|
"win32-x64": {
|
|
97
|
-
"name": "kernel_0.
|
|
98
|
-
"url": "https://github.com/kernel/cli/releases/download/v0.
|
|
97
|
+
"name": "kernel_0.17.0_windows_amd64.tar.gz",
|
|
98
|
+
"url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_windows_amd64.tar.gz",
|
|
99
99
|
"bins": [
|
|
100
100
|
"kernel.exe"
|
|
101
101
|
],
|
|
102
102
|
"format": "tar.gz",
|
|
103
103
|
"checksum": {
|
|
104
104
|
"algorithm": "sha256",
|
|
105
|
-
"digest": "
|
|
105
|
+
"digest": "7048f5e4ce9f7ae6145f7f1f00b2450ba434e52fa4359c40660d2c197c1ffc9f"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|
package/run-kernel.js
CHANGED