xs-dev 1.7.1 → 1.7.2--canary.245.968fba7.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/build/package.json +1 -1
- package/build/src/commands/doctor.js +8 -2
- package/build/src/commands/setup.js +28 -7
- package/build/src/commands/teardown.js +35 -5
- package/build/src/commands/update.js +37 -5
- package/build/src/lib/toolchain.js +2 -0
- package/build/src/toolbox/build/index.js +24 -60
- package/build/src/toolbox/doctor/index.js +13 -51
- package/build/src/toolbox/scan/index.js +6 -21
- package/build/src/toolbox/setup/windows.js +3 -265
- package/build/src/toolbox/system/exec.js +8 -1
- package/build/src/toolbox/toolchains/context.js +19 -0
- package/build/src/toolbox/toolchains/esp32/index.js +397 -0
- package/build/src/toolbox/toolchains/esp32/linux.js +47 -0
- package/build/src/toolbox/{setup → toolchains}/esp32/mac.js +3 -3
- package/build/src/toolbox/toolchains/esp32/windows.js +47 -0
- package/build/src/toolbox/toolchains/esp8266.js +412 -0
- package/build/src/toolbox/toolchains/interface.js +2 -0
- package/build/src/toolbox/toolchains/moddable/index.js +98 -0
- package/build/src/toolbox/toolchains/moddable/lin.js +441 -0
- package/build/src/toolbox/toolchains/moddable/mac.js +433 -0
- package/build/src/toolbox/toolchains/moddable/windows.js +304 -0
- package/build/src/toolbox/toolchains/nrf52.js +267 -0
- package/build/src/toolbox/toolchains/pico.js +542 -0
- package/build/src/toolbox/toolchains/registry.js +25 -0
- package/build/src/toolbox/toolchains/wasm.js +279 -0
- package/build/src/toolbox/toolchains/zephyr.js +360 -0
- package/build/types/src/lib/toolchain.d.ts +24 -0
- package/build/types/src/toolbox/doctor/index.d.ts +5 -1
- package/build/types/src/toolbox/setup/types.d.ts +1 -1
- package/build/types/src/toolbox/setup/windows.d.ts +1 -4
- package/build/types/src/toolbox/system/exec.d.ts +5 -0
- package/build/types/src/toolbox/toolchains/context.d.ts +2 -0
- package/build/types/src/toolbox/toolchains/esp32/index.d.ts +3 -0
- package/build/types/src/toolbox/{setup → toolchains}/esp32/linux.d.ts +1 -1
- package/build/types/src/toolbox/{setup/pico → toolchains/esp32}/mac.d.ts +1 -1
- package/build/types/src/toolbox/{setup → toolchains}/esp32/windows.d.ts +1 -1
- package/build/types/src/toolbox/toolchains/esp8266.d.ts +2 -0
- package/build/types/src/toolbox/toolchains/interface.d.ts +1 -0
- package/build/types/src/toolbox/toolchains/moddable/index.d.ts +7 -0
- package/build/types/src/toolbox/toolchains/moddable/lin.d.ts +7 -0
- package/build/types/src/toolbox/toolchains/moddable/mac.d.ts +7 -0
- package/build/types/src/toolbox/toolchains/moddable/windows.d.ts +7 -0
- package/build/types/src/toolbox/toolchains/nrf52.d.ts +2 -0
- package/build/types/src/toolbox/toolchains/pico.d.ts +2 -0
- package/build/types/src/toolbox/toolchains/registry.d.ts +4 -0
- package/build/types/src/toolbox/toolchains/wasm.d.ts +2 -0
- package/build/types/src/toolbox/toolchains/zephyr.d.ts +2 -0
- package/package.json +1 -1
- package/build/src/toolbox/setup/esp32/linux.js +0 -47
- package/build/src/toolbox/setup/esp32/windows.js +0 -54
- package/build/src/toolbox/setup/esp32.js +0 -190
- package/build/src/toolbox/setup/esp8266/linux.js +0 -42
- package/build/src/toolbox/setup/esp8266/mac.js +0 -74
- package/build/src/toolbox/setup/esp8266/windows.js +0 -118
- package/build/src/toolbox/setup/esp8266.js +0 -163
- package/build/src/toolbox/setup/lin.js +0 -230
- package/build/src/toolbox/setup/mac.js +0 -204
- package/build/src/toolbox/setup/nrf52/windows.js +0 -40
- package/build/src/toolbox/setup/nrf52.js +0 -169
- package/build/src/toolbox/setup/pico/linux.js +0 -23
- package/build/src/toolbox/setup/pico/mac.js +0 -62
- package/build/src/toolbox/setup/pico.js +0 -267
- package/build/src/toolbox/setup/wasm.js +0 -223
- package/build/src/toolbox/setup/zephyr/linux.js +0 -25
- package/build/src/toolbox/setup/zephyr/mac.js +0 -36
- package/build/src/toolbox/setup/zephyr/windows.js +0 -29
- package/build/src/toolbox/setup/zephyr.js +0 -226
- package/build/src/toolbox/teardown/index.js +0 -37
- package/build/src/toolbox/update/esp32.js +0 -186
- package/build/src/toolbox/update/esp8266.js +0 -7
- package/build/src/toolbox/update/lin.js +0 -214
- package/build/src/toolbox/update/mac.js +0 -220
- package/build/src/toolbox/update/nrf52.js +0 -4
- package/build/src/toolbox/update/pico.js +0 -162
- package/build/src/toolbox/update/wasm.js +0 -4
- package/build/src/toolbox/update/windows.js +0 -7
- package/build/types/src/toolbox/setup/esp32/mac.d.ts +0 -3
- package/build/types/src/toolbox/setup/esp32.d.ts +0 -4
- package/build/types/src/toolbox/setup/esp8266/linux.d.ts +0 -3
- package/build/types/src/toolbox/setup/esp8266/mac.d.ts +0 -3
- package/build/types/src/toolbox/setup/esp8266/windows.d.ts +0 -3
- package/build/types/src/toolbox/setup/esp8266.d.ts +0 -3
- package/build/types/src/toolbox/setup/lin.d.ts +0 -4
- package/build/types/src/toolbox/setup/mac.d.ts +0 -4
- package/build/types/src/toolbox/setup/nrf52/windows.d.ts +0 -3
- package/build/types/src/toolbox/setup/nrf52.d.ts +0 -3
- package/build/types/src/toolbox/setup/pico/linux.d.ts +0 -3
- package/build/types/src/toolbox/setup/pico.d.ts +0 -3
- package/build/types/src/toolbox/setup/wasm.d.ts +0 -3
- package/build/types/src/toolbox/setup/zephyr/linux.d.ts +0 -3
- package/build/types/src/toolbox/setup/zephyr/mac.d.ts +0 -3
- package/build/types/src/toolbox/setup/zephyr/windows.d.ts +0 -3
- package/build/types/src/toolbox/setup/zephyr.d.ts +0 -3
- package/build/types/src/toolbox/teardown/index.d.ts +0 -1
- package/build/types/src/toolbox/update/esp32.d.ts +0 -3
- package/build/types/src/toolbox/update/esp8266.d.ts +0 -3
- package/build/types/src/toolbox/update/lin.d.ts +0 -3
- package/build/types/src/toolbox/update/mac.d.ts +0 -3
- package/build/types/src/toolbox/update/nrf52.d.ts +0 -3
- package/build/types/src/toolbox/update/pico.d.ts +0 -3
- package/build/types/src/toolbox/update/wasm.d.ts +0 -3
- package/build/types/src/toolbox/update/windows.d.ts +0 -3
package/build/package.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { buildCommand } from '@stricli/core';
|
|
2
2
|
import { gatherEnvironmentInfo } from '../toolbox/doctor/index.js';
|
|
3
|
+
import { toolchains } from '../toolbox/toolchains/registry.js';
|
|
4
|
+
import { getHostContext } from '../toolbox/toolchains/context.js';
|
|
3
5
|
function printTable(rows, write) {
|
|
4
6
|
const labelWidth = Math.max(...rows.map((r) => r[0]?.length ?? 0)) + 2;
|
|
5
7
|
for (const [label, value] of rows) {
|
|
@@ -12,7 +14,11 @@ const command = buildCommand({
|
|
|
12
14
|
const write = (s) => {
|
|
13
15
|
proc.stdout.write(s);
|
|
14
16
|
};
|
|
15
|
-
const
|
|
17
|
+
const ctx = getHostContext();
|
|
18
|
+
const info = await gatherEnvironmentInfo(currentVersion, {
|
|
19
|
+
adapterList: Object.values(toolchains),
|
|
20
|
+
ctx,
|
|
21
|
+
});
|
|
16
22
|
write('xs-dev environment info:\n');
|
|
17
23
|
printTable([
|
|
18
24
|
['CLI Version', info.cliVersion],
|
|
@@ -65,4 +71,4 @@ const command = buildCommand({
|
|
|
65
71
|
},
|
|
66
72
|
});
|
|
67
73
|
export default command;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RvY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxVQUFVLENBQUMsSUFBZ0IsRUFBRSxLQUEwQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2hFLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzNCLEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBUyxFQUFRLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEIsQ0FBQyxDQUFBO1FBRUQsTUFBTSxH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
|
|
@@ -3,16 +3,21 @@ import ora from 'ora';
|
|
|
3
3
|
import { buildCommand } from '@stricli/core';
|
|
4
4
|
import setupEjectfix from '../toolbox/setup/ejectfix.js';
|
|
5
5
|
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
6
|
-
import { MODDABLE_REPO } from '../toolbox/setup/constants.js';
|
|
7
6
|
import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
|
|
8
7
|
import { handleEvent } from '../lib/renderer.js';
|
|
8
|
+
import { getToolchain } from '../toolbox/toolchains/registry.js';
|
|
9
|
+
import { getHostContext } from '../toolbox/toolchains/context.js';
|
|
10
|
+
function buildVersionString(release, branch, sourceRepo) {
|
|
11
|
+
const prefix = branch !== undefined ? `branch-${branch}` : `release-${release ?? 'latest'}`;
|
|
12
|
+
return sourceRepo !== undefined ? `${prefix}@${sourceRepo}` : prefix;
|
|
13
|
+
}
|
|
9
14
|
const command = buildCommand({
|
|
10
15
|
docs: {
|
|
11
16
|
brief: 'Download and build Moddable tooling for various platform targets',
|
|
12
17
|
},
|
|
13
18
|
async func(flags) {
|
|
14
19
|
const currentPlatform = platformType().toLowerCase();
|
|
15
|
-
const { device, 'list-devices': listDevices = false, tool, branch, release = 'latest', 'source-repo': sourceRepo
|
|
20
|
+
const { device, 'list-devices': listDevices = false, tool, branch, release = 'latest', 'source-repo': sourceRepo, interactive = true, } = flags;
|
|
16
21
|
// Determine interactive mode and create prompter
|
|
17
22
|
const prompter = isInteractive(interactive)
|
|
18
23
|
? createInteractivePrompter()
|
|
@@ -59,16 +64,32 @@ const command = buildCommand({
|
|
|
59
64
|
'lin',
|
|
60
65
|
'linux',
|
|
61
66
|
];
|
|
62
|
-
const { default: setup } = await import(`../toolbox/setup/${target}.js`);
|
|
63
67
|
const spinner = ora();
|
|
64
68
|
if (platformDevices.includes(target)) {
|
|
65
|
-
|
|
69
|
+
const toolchain = getToolchain('moddable');
|
|
70
|
+
if (toolchain === undefined) {
|
|
71
|
+
console.warn('Moddable toolchain not found');
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
const version = buildVersionString(release, branch, sourceRepo);
|
|
75
|
+
const ctx = { ...getHostContext(), version };
|
|
76
|
+
for await (const event of toolchain.install(ctx, prompter)) {
|
|
66
77
|
handleEvent(event, spinner);
|
|
67
78
|
}
|
|
68
79
|
}
|
|
69
80
|
else {
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
const toolchain = getToolchain(target);
|
|
82
|
+
if (toolchain !== undefined) {
|
|
83
|
+
const ctx = getHostContext();
|
|
84
|
+
for await (const event of toolchain.install(ctx, prompter)) {
|
|
85
|
+
handleEvent(event, spinner);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
handleEvent({
|
|
90
|
+
type: 'step:fail',
|
|
91
|
+
message: `No toolchain registered for device: ${target}`,
|
|
92
|
+
}, spinner);
|
|
72
93
|
}
|
|
73
94
|
}
|
|
74
95
|
},
|
|
@@ -118,4 +139,4 @@ const command = buildCommand({
|
|
|
118
139
|
},
|
|
119
140
|
});
|
|
120
141
|
export default command;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDOUMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHNUMsT0FBTyxhQUFhLE1BQU0sOEJBQThCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRTNELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGFBQWEsR0FDZCxNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRWpFLFNBQVMsa0JBQWtCLENBQ3pCLE9BQTJCLEVBQzNCLE1BQTBCLEVBQzFCLFVBQThCO0lBRTlCLE1BQU0sTUFBTSxHQUNWLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFBO0lBQzlFLE9BQU8sVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtBQUN0RSxDQUFDO0FBWUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBQzNCLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxrRUFBa0U7S0FDMUU7SUFDRCxLQUFLLENBQUMsSUFBSSxDQUFxQixLQUFtQjtRQUNoRCxNQUFNLGVBQWUs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
|
|
@@ -1,14 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { existsSync, rmSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
2
4
|
import ora from 'ora';
|
|
3
|
-
import {
|
|
5
|
+
import { buildCommand } from '@stricli/core';
|
|
6
|
+
import { toolchains } from '../toolbox/toolchains/registry.js';
|
|
7
|
+
import { getHostContext } from '../toolbox/toolchains/context.js';
|
|
8
|
+
import { createNonInteractivePrompter } from '../lib/prompter.js';
|
|
9
|
+
import { handleEvent } from '../lib/renderer.js';
|
|
10
|
+
import { EXPORTS_FILE_PATH, INSTALL_DIR, getProfilePath, } from '../toolbox/setup/constants.js';
|
|
4
11
|
const command = buildCommand({
|
|
5
12
|
docs: {
|
|
6
13
|
brief: 'Remove all installed git repos and toolchains, unset environment changes',
|
|
7
14
|
},
|
|
8
15
|
async func() {
|
|
9
16
|
const spinner = ora();
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
const ctx = getHostContext();
|
|
18
|
+
const prompter = createNonInteractivePrompter();
|
|
19
|
+
spinner.start('Tearing down platform dependencies');
|
|
20
|
+
for (const toolchain of Object.values(toolchains)) {
|
|
21
|
+
if (toolchain.platforms.includes(ctx.platform)) {
|
|
22
|
+
for await (const event of toolchain.teardown(ctx, prompter)) {
|
|
23
|
+
handleEvent(event, spinner);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Non-adapter cleanup: fontbm, exports file, shell profile
|
|
28
|
+
const remove = (path) => {
|
|
29
|
+
rmSync(path, { recursive: true, force: true });
|
|
30
|
+
};
|
|
31
|
+
remove(EXPORTS_FILE_PATH);
|
|
32
|
+
remove(join(INSTALL_DIR, 'fontbm'));
|
|
33
|
+
const profilePath = getProfilePath();
|
|
34
|
+
if (existsSync(profilePath)) {
|
|
35
|
+
const contents = await readFile(profilePath, 'utf8');
|
|
36
|
+
const patched = contents
|
|
37
|
+
.split('\n')
|
|
38
|
+
.filter((line) => line.trim() !== `source ${EXPORTS_FILE_PATH}`)
|
|
39
|
+
.join('\n');
|
|
40
|
+
await writeFile(profilePath, patched, 'utf8');
|
|
41
|
+
}
|
|
12
42
|
spinner.succeed('Clean up complete!');
|
|
13
43
|
},
|
|
14
44
|
parameters: {
|
|
@@ -16,4 +46,4 @@ const command = buildCommand({
|
|
|
16
46
|
},
|
|
17
47
|
});
|
|
18
48
|
export default command;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQTtBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsR0FDZixNQUFNLCtCQUErQixDQUFBO0FBRXRDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUMzQixJQUFJLEVBQUU7UUFDSixLQUFLLEVBQ0gsMEVBQTBFO0tBQzdFO0lBQ0QsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixNQUFNLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtRQUM1QixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsRUFBRSxDQUFBO1FBRS9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUVuRCxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUM1RCxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCwyREFBMkQ7UUFDM0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUNwQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUE7UUFDRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRW5DLE1BQU0sV0FBVyxHQUFHLGNBQWMsRUFBRSxDQUFBO1FBQ3BDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLFFBQVE7aUJBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ1gsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssVUFBVSxpQkFBaUIsRUFBRSxDQUFDO2lCQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDYixNQUFNLFNBQVMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUNELFVBQVUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7Q0FDRixDQUFDLENBQUE7QUFFRixlQUFlLE9BQU8sQ0FBQSJ9
|
|
@@ -4,6 +4,12 @@ import { buildCommand } from '@stricli/core';
|
|
|
4
4
|
import { DEVICE_ALIAS } from '../toolbox/prompt/devices.js';
|
|
5
5
|
import { createInteractivePrompter, createNonInteractivePrompter, isInteractive, } from '../lib/prompter.js';
|
|
6
6
|
import { handleEvent } from '../lib/renderer.js';
|
|
7
|
+
import { getToolchain } from '../toolbox/toolchains/registry.js';
|
|
8
|
+
import { getHostContext } from '../toolbox/toolchains/context.js';
|
|
9
|
+
function buildVersionString(release, branch, sourceRepo) {
|
|
10
|
+
const prefix = branch !== undefined ? `branch-${branch}` : `release-${release ?? 'latest'}`;
|
|
11
|
+
return sourceRepo !== undefined ? `${prefix}@${sourceRepo}` : prefix;
|
|
12
|
+
}
|
|
7
13
|
const command = buildCommand({
|
|
8
14
|
docs: {
|
|
9
15
|
brief: 'Check and update Moddable tooling for various platform targets',
|
|
@@ -14,10 +20,36 @@ const command = buildCommand({
|
|
|
14
20
|
const prompter = isInteractive(interactive)
|
|
15
21
|
? createInteractivePrompter()
|
|
16
22
|
: createNonInteractivePrompter();
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
const platformDevices = ['mac', 'lin', 'windows'];
|
|
24
|
+
const resolvedTarget = DEVICE_ALIAS[device];
|
|
25
|
+
if (platformDevices.includes(resolvedTarget)) {
|
|
26
|
+
const toolchain = getToolchain('moddable');
|
|
27
|
+
if (toolchain === undefined) {
|
|
28
|
+
console.warn('Moddable toolchain not found');
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const version = buildVersionString(release, branch, undefined);
|
|
32
|
+
const ctx = { ...getHostContext(), version };
|
|
33
|
+
const spinner = ora();
|
|
34
|
+
for await (const event of toolchain.update(ctx, prompter)) {
|
|
35
|
+
handleEvent(event, spinner);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const deviceToolchain = getToolchain(resolvedTarget);
|
|
40
|
+
const spinner = ora();
|
|
41
|
+
if (deviceToolchain !== undefined) {
|
|
42
|
+
const ctx = getHostContext();
|
|
43
|
+
for await (const event of deviceToolchain.update(ctx, prompter)) {
|
|
44
|
+
handleEvent(event, spinner);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
handleEvent({
|
|
49
|
+
type: 'step:fail',
|
|
50
|
+
message: `No toolchain registered for device: ${resolvedTarget}`,
|
|
51
|
+
}, spinner);
|
|
52
|
+
}
|
|
21
53
|
}
|
|
22
54
|
},
|
|
23
55
|
parameters: {
|
|
@@ -49,4 +81,4 @@ const command = buildCommand({
|
|
|
49
81
|
},
|
|
50
82
|
});
|
|
51
83
|
export default command;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUE7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsU0FBUyxrQkFBa0IsQ0FDekIsT0FBMkIsRUFDM0IsTUFBMEIsRUFDMUIsVUFBOEI7SUFFOUIsTUFBTSxNQUFNLEdBQ1YsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUE7SUFDOUUsT0FBTyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3RFLENBQUM7QUFTRCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFDM0IsSUFBSSxFQUFFO1FBQ0osS0FBSyxFQUFFLGdFQUFnRTtLQUN4RTtJQUNELEtBQUssQ0FBQyxJQUFJLENBQXFCLEtBQW9CO1FBQ2pELE1BQU0sZUFBZSxHQUFXLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBWSxD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
|
|
@@ -7,7 +7,9 @@ import { execaCommand } from 'execa';
|
|
|
7
7
|
import { collectChoicesFromTree } from '../prompt/choices.js';
|
|
8
8
|
import { moddableExists } from '../setup/moddable.js';
|
|
9
9
|
import { DEVICE_ALIAS } from '../prompt/devices.js';
|
|
10
|
-
import { sourceEnvironment,
|
|
10
|
+
import { sourceEnvironment, which, sourceScript } from '../system/exec.js';
|
|
11
|
+
import { getHostContext } from '../toolchains/context.js';
|
|
12
|
+
import { resolveToolchain } from '../toolchains/registry.js';
|
|
11
13
|
const DEPLOY_TARGET = Object.freeze({
|
|
12
14
|
clean: 'clean',
|
|
13
15
|
debug: 'xsbug',
|
|
@@ -46,6 +48,7 @@ async function* inspectTree(dirPath) {
|
|
|
46
48
|
export default async function* build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }, prompter) {
|
|
47
49
|
const OS = platformType().toLowerCase();
|
|
48
50
|
await sourceEnvironment();
|
|
51
|
+
const ctx = getHostContext();
|
|
49
52
|
if (!moddableExists()) {
|
|
50
53
|
yield {
|
|
51
54
|
type: 'step:fail',
|
|
@@ -86,64 +89,25 @@ export default async function* build({ listDevices, port, example, listExamples,
|
|
|
86
89
|
}
|
|
87
90
|
if (targetPlatform !== '') {
|
|
88
91
|
const startsWithSimulator = targetPlatform.startsWith('simulator');
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (targetPlatform.includes('wasm') && !startsWithSimulator) {
|
|
109
|
-
if (!(process.env.PATH ?? '').includes('binaryen') ||
|
|
110
|
-
typeof process.env.EMSDK !== 'string' ||
|
|
111
|
-
typeof process.env.EMSDK_NODE !== 'string' ||
|
|
112
|
-
typeof process.env.EMSDK_PYTHON !== 'string') {
|
|
113
|
-
yield {
|
|
114
|
-
type: 'step:fail',
|
|
115
|
-
message: 'The current environment does not appear to be set up for the wasm build target. Please run `xs-dev setup --device wasm` before trying again.',
|
|
116
|
-
};
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (targetPlatform.includes('pico') && !startsWithSimulator) {
|
|
121
|
-
if (!(typeof process.env.PICO_SDK_PATH === 'string') ||
|
|
122
|
-
typeof process.env.PIOASM !== 'string') {
|
|
123
|
-
yield {
|
|
124
|
-
type: 'step:fail',
|
|
125
|
-
message: 'The current environment does not appear to be set up for the pico build target. Please run `xs-dev setup --device pico` before trying again.',
|
|
126
|
-
};
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (targetPlatform.includes('nrf52') && !startsWithSimulator) {
|
|
131
|
-
if (typeof process.env.NRF_ROOT !== 'string' ||
|
|
132
|
-
typeof process.env.NRF_SDK_DIR !== 'string') {
|
|
133
|
-
yield {
|
|
134
|
-
type: 'step:fail',
|
|
135
|
-
message: 'The current environment does not appear to be set up for the nrf52 build target. Please run `xs-dev setup --device nrf52` before trying again.',
|
|
136
|
-
};
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (targetPlatform.includes('zephyr') && !startsWithSimulator) {
|
|
141
|
-
if (typeof process.env.ZEPHYR_BASE !== 'string') {
|
|
142
|
-
yield {
|
|
143
|
-
type: 'step:fail',
|
|
144
|
-
message: 'The current environment does not appear to be set up for the zephyr build target. Please run `xs-dev setup --device zephyr` before trying again.',
|
|
145
|
-
};
|
|
146
|
-
return;
|
|
92
|
+
if (!startsWithSimulator) {
|
|
93
|
+
const toolchain = resolveToolchain(targetPlatform);
|
|
94
|
+
if (toolchain !== undefined) {
|
|
95
|
+
// Apply env vars from the toolchain so build tools are on PATH
|
|
96
|
+
Object.assign(process.env, toolchain.getEnvVars(ctx));
|
|
97
|
+
// Source activation script if toolchain provides one (e.g. ESP-IDF, Zephyr)
|
|
98
|
+
const script = toolchain.getActivationScript?.(ctx);
|
|
99
|
+
if (script !== undefined && script !== null) {
|
|
100
|
+
await sourceScript(script);
|
|
101
|
+
}
|
|
102
|
+
// Verify the toolchain is set up
|
|
103
|
+
const verifyResult = await toolchain.verify(ctx);
|
|
104
|
+
if (!verifyResult.ok) {
|
|
105
|
+
yield {
|
|
106
|
+
type: 'step:fail',
|
|
107
|
+
message: `The current environment does not appear to be set up for the ${toolchain.name} build target. Please run \`xs-dev setup --device ${toolchain.name}\` before trying again.`,
|
|
108
|
+
};
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
147
111
|
}
|
|
148
112
|
}
|
|
149
113
|
}
|
|
@@ -322,4 +286,4 @@ export default async function* build({ listDevices, port, example, listExamples,
|
|
|
322
286
|
}).listen(8080);
|
|
323
287
|
}
|
|
324
288
|
}
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBSW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQWtCaEYsTUFBTSxhQUFhLEdBQTJDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUUsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE9BQU87SUFDYixHQUFHLEVBQUUsS0FBSztDQUNYLENBQUMsQ0FBQTtBQVFGLEtBQUssU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQWU7SUFDekMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDL0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxP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
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBSW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBa0I1RCxNQUFNLGFBQWEsR0FBMkMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRSxLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLEdBQUcsRUFBRSxLQUFLO0NBQ1gsQ0FBQyxDQUFBO0FBUUYsS0FBSyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBZTtJQUN6QyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxN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
|
|
@@ -1,57 +1,19 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { DEVICE_ALIAS } from '../prompt/devices.js';
|
|
5
|
-
import { getModdableVersion, moddableExists } from '../setup/moddable.js';
|
|
6
|
-
import { sourceEnvironment, which } from '../system/exec.js';
|
|
2
|
+
import { which } from '../system/exec.js';
|
|
3
|
+
import { getModdableVersion } from '../setup/moddable.js';
|
|
7
4
|
import { detectPython, getPythonVersion } from '../system/python.js';
|
|
8
5
|
import { unwrapOr } from '../system/errors.js';
|
|
9
|
-
function
|
|
10
|
-
return existsSync(path) && statSync(path).isDirectory();
|
|
11
|
-
}
|
|
12
|
-
function isFile(path) {
|
|
13
|
-
return existsSync(path) && statSync(path).isFile();
|
|
14
|
-
}
|
|
15
|
-
export async function gatherEnvironmentInfo(cliVersion) {
|
|
16
|
-
await sourceEnvironment();
|
|
6
|
+
export async function gatherEnvironmentInfo(cliVersion, { adapterList, ctx }) {
|
|
17
7
|
const supportedDevices = [];
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
isDir(join(process.env.ESP_BASE, 'ESP8266_RTOS_SDK')) &&
|
|
28
|
-
isDir(join(process.env.ESP_BASE, 'esp8266-2.3.0'))) {
|
|
29
|
-
supportedDevices.push('esp8266');
|
|
30
|
-
}
|
|
31
|
-
if ((process.env.PATH ?? '').includes('binaryen') &&
|
|
32
|
-
isDir(process.env.EMSDK ?? '') &&
|
|
33
|
-
isFile(process.env.EMSDK_NODE ?? '') &&
|
|
34
|
-
isFile(process.env.EMSDK_PYTHON ?? '')) {
|
|
35
|
-
supportedDevices.push('wasm');
|
|
36
|
-
}
|
|
37
|
-
if (typeof process.env.PICO_SDK_PATH === 'string' &&
|
|
38
|
-
isDir(process.env.PICO_SDK_PATH) &&
|
|
39
|
-
which('picotool') !== null &&
|
|
40
|
-
isFile(process.env.PIOASM ?? '')) {
|
|
41
|
-
supportedDevices.push('pico');
|
|
42
|
-
}
|
|
43
|
-
if (typeof process.env.NRF_ROOT === 'string' &&
|
|
44
|
-
isDir(process.env.NRF_ROOT) &&
|
|
45
|
-
((typeof process.env.NRF_SDK_DIR === 'string' &&
|
|
46
|
-
isDir(process.env.NRF_SDK_DIR)) ||
|
|
47
|
-
(typeof process.env.NRF52_SDK_PATH === 'string' &&
|
|
48
|
-
isDir(process.env.NRF52_SDK_PATH)))) {
|
|
49
|
-
supportedDevices.push('nrf52');
|
|
50
|
-
}
|
|
51
|
-
if (typeof process.env.ZEPHYR_BASE === 'string' &&
|
|
52
|
-
isDir(process.env.ZEPHYR_BASE)) {
|
|
53
|
-
supportedDevices.push('zephyr');
|
|
54
|
-
}
|
|
8
|
+
await Promise.all(adapterList
|
|
9
|
+
.filter((toolchain) => toolchain.platforms.includes(ctx.platform))
|
|
10
|
+
.map(async (toolchain) => {
|
|
11
|
+
Object.assign(process.env, toolchain.getEnvVars(ctx));
|
|
12
|
+
const result = await toolchain.verify(ctx);
|
|
13
|
+
if (result.ok) {
|
|
14
|
+
supportedDevices.push(toolchain.name);
|
|
15
|
+
}
|
|
16
|
+
}));
|
|
55
17
|
const pythonVersion = unwrapOr(await getPythonVersion(), 'Unavailable');
|
|
56
18
|
const pythonPath = which(detectPython() ?? '') ?? 'n/a';
|
|
57
19
|
const moddableVersion = unwrapOr(await getModdableVersion(), 'Not found');
|
|
@@ -70,4 +32,4 @@ export async function gatherEnvironmentInfo(cliVersion) {
|
|
|
70
32
|
supportedDevices,
|
|
71
33
|
};
|
|
72
34
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9kb2N0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBaUI5QyxNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxVQUFrQixFQUNsQixFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQWtEO0lBRXBFLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFBO0lBRXJDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixXQUFXO1NBQ1IsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakUsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNkLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUNMLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUE7SUFDdkQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sa0JBQWtCLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUN6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUE7SUFFbEQsT0FBTztRQUNMLFVBQVU7UUFDVixNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNqQixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTO1FBQ3JDLFdBQVcsRUFBRSxPQUFPLENBQUMsT0FBTztRQUM1QixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQjtRQUMzQyxhQUFhO1FBQ2IsVUFBVTtRQUNWLGVBQWU7UUFDZixZQUFZO1FBQ1osZ0JBQWdCO0tBQ2pCLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -1,29 +1,14 @@
|
|
|
1
1
|
import { setTimeout as sleep } from 'node:timers/promises';
|
|
2
|
-
import { existsSync, statSync } from 'node:fs';
|
|
3
2
|
import { execSync } from 'node:child_process';
|
|
4
3
|
import { SerialPort } from 'serialport';
|
|
5
4
|
import { findBySerialNumber } from 'usb';
|
|
6
5
|
import { parseScanResult } from './parse.js';
|
|
7
|
-
import {
|
|
6
|
+
import { toolchains } from '../toolchains/registry.js';
|
|
7
|
+
import { getHostContext } from '../toolchains/context.js';
|
|
8
8
|
export default async function* scanDevices() {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
type: 'warning',
|
|
13
|
-
message: `Failed to source environment: ${envResult.error}`,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
if (typeof process.env.IDF_PATH === 'string' &&
|
|
17
|
-
existsSync(process.env.IDF_PATH) &&
|
|
18
|
-
statSync(process.env.IDF_PATH).isDirectory()) {
|
|
19
|
-
yield { type: 'info', message: 'Found ESP_IDF, sourcing environment...' };
|
|
20
|
-
const idfResult = await sourceIdf();
|
|
21
|
-
if (!idfResult.success) {
|
|
22
|
-
yield {
|
|
23
|
-
type: 'warning',
|
|
24
|
-
message: `Failed to source IDF environment: ${idfResult.error}`,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
9
|
+
const ctx = getHostContext();
|
|
10
|
+
for (const toolchain of Object.values(toolchains).filter((a) => a.platforms.includes(ctx.platform))) {
|
|
11
|
+
Object.assign(process.env, toolchain.getEnvVars(ctx));
|
|
27
12
|
}
|
|
28
13
|
const esptoolPath = (() => {
|
|
29
14
|
try {
|
|
@@ -114,4 +99,4 @@ export default async function* scanDevices() {
|
|
|
114
99
|
}
|
|
115
100
|
}
|
|
116
101
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zY2FuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLElBQUksS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsV0FBVztJQUN4QyxNQUFNLEdBQUcsR0FBRyxjQUFjLEVBQUUsQ0FBQTtJQUM1QixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDN0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUNuQyxFQUFFLENBQUM7UUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FB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
|