xs-dev 0.26.0 → 0.27.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/README.md +16 -1
- package/build/commands/setup.js +9 -4
- package/build/commands/teardown.js +8 -1
- package/build/extensions/setup-extension.js +3 -1
- package/build/extensions/update-extension.js +3 -1
- package/build/toolbox/build/index.js +37 -11
- package/build/toolbox/prompt/devices.js +2 -1
- package/build/toolbox/setup/ejectfix.js +62 -0
- package/build/toolbox/setup/nrf52/windows.js +27 -0
- package/build/toolbox/setup/nrf52.js +125 -0
- package/build/toolbox/update/nrf52.js +8 -0
- package/build/types/toolbox/setup/ejectfix.d.ts +1 -0
- package/build/types/toolbox/setup/nrf52/windows.d.ts +2 -0
- package/build/types/toolbox/setup/nrf52.d.ts +1 -0
- package/build/types/toolbox/update/nrf52.d.ts +1 -0
- package/build/types/types.d.ts +1 -1
- package/docs/src/content/docs/features/setup.md +12 -0
- package/docs/src/content/docs/guide/00-prepare.md +1 -1
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -14,9 +14,24 @@ The Moddable SDK and associated dev board tooling is incredibly empowering for e
|
|
|
14
14
|
|
|
15
15
|
_If you've never installed Node.js before, check out the [getting started guide for xs-dev](https://hipsterbrown.github.io/xs-dev/guide/00-prepare#nodejs-package-manager-optional)._
|
|
16
16
|
|
|
17
|
+
[XZ utils](https://tukaani.org/xz/) are required to install the CLI due to a dependency for decompressing the ARM toolchain used for nrf52 development.
|
|
18
|
+
|
|
19
|
+
It can be installed with Homebrew on MacOS:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
brew install xz
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Or as `xz-utils` on Linux distributions like [Ubunutu](https://packages.ubuntu.com/search?keywords=xz-utils):
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
apt-get install xz-utils
|
|
29
|
+
```
|
|
30
|
+
|
|
17
31
|
**On Linux:**
|
|
18
32
|
|
|
19
|
-
Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/
|
|
33
|
+
Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/focal/ssh-askpass) to prompt for permission when installing other tools and dependencies.
|
|
34
|
+
|
|
20
35
|
|
|
21
36
|
## Install
|
|
22
37
|
|
package/build/commands/setup.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const os_1 = require("os");
|
|
7
7
|
const fontbm_1 = __importDefault(require("../toolbox/setup/fontbm"));
|
|
8
|
+
const ejectfix_1 = __importDefault(require("../toolbox/setup/ejectfix"));
|
|
8
9
|
const devices_1 = require("../toolbox/prompt/devices");
|
|
9
10
|
const constants_1 = require("../toolbox/setup/constants");
|
|
10
11
|
const command = {
|
|
@@ -20,6 +21,7 @@ const command = {
|
|
|
20
21
|
'esp32',
|
|
21
22
|
'pico',
|
|
22
23
|
'wasm',
|
|
24
|
+
'nrf52',
|
|
23
25
|
devices_1.DEVICE_ALIAS[currentPlatform],
|
|
24
26
|
];
|
|
25
27
|
const { device: selectedDevice } = await prompt.ask([
|
|
@@ -39,11 +41,14 @@ const command = {
|
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
if (tool !== undefined) {
|
|
42
|
-
if (
|
|
44
|
+
if (!['fontbm', 'ejectfix'].includes(tool)) {
|
|
43
45
|
print.warning(`Unknown tool ${tool}`);
|
|
44
|
-
process.exit(
|
|
46
|
+
process.exit(1);
|
|
45
47
|
}
|
|
46
|
-
|
|
48
|
+
if (tool === 'fontbm')
|
|
49
|
+
await (0, fontbm_1.default)();
|
|
50
|
+
if (tool === 'ejectfix')
|
|
51
|
+
await (0, ejectfix_1.default)();
|
|
47
52
|
return;
|
|
48
53
|
}
|
|
49
54
|
const platformDevices = [
|
|
@@ -63,4 +68,4 @@ const command = {
|
|
|
63
68
|
},
|
|
64
69
|
};
|
|
65
70
|
exports.default = command;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQkFBeUM7QUFFekMscUVBQWlEO0FBQ2pELHlFQUFxRDtBQUNyRCx1REFBd0Q7QUFDeEQsMERBQTBEO0FBVzFELE1BQU0sT0FBTyxHQUFpQztJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLFdBQVcsRUFDVCxrRUFBa0U7SUFDcEUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbEQsTUFBTSxlQUFlLEdBQVcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxFQUNOLFdBQVcsR0FBRyxLQUFLLEVBQ25CLElBQUksRUFDSixZQUFZLEdBQUcsZ0JBQWdCLEVBQy9CLFVBQVUsR0FBRyx5QkFBYSxHQUMzQixHQUFpQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ3BDLElBQUksTUFBTSxHQUFXLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLGVBQWUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVM7Z0JBQ1QsT0FBTztnQkFDUCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxzQkFBWSxDQUFDLGVBQWUsQ0FBQzthQUM5QixDQUFBO1lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2xEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxPQUFPO2lCQUNSO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3pELE1BQU0sR0FBRyxjQUF3QixDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7WUFDRCxJQUFJLElBQUksS0FBSyxRQUFRO2dCQUFFLE1BQU0sSUFBQSxnQkFBVyxHQUFFLENBQUE7WUFDMUMsSUFBSSxJQUFJLEtBQUssVUFBVTtnQkFBRSxNQUFNLElBQUEsa0JBQWEsR0FBRSxDQUFBO1lBQzlDLE9BQU07U0FDUDtRQUNELE1BQU0sZUFBZSxHQUFhO1lBQ2hDLEtBQUs7WUFDTCxRQUFRO1lBQ1IsWUFBWTtZQUNaLEtBQUs7WUFDTCxLQUFLO1lBQ0wsT0FBTztTQUNSLENBQUE7UUFDRCxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQTtTQUNsRDthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1NBQ3RDO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==
|
|
@@ -6,6 +6,7 @@ const command = {
|
|
|
6
6
|
name: 'teardown',
|
|
7
7
|
description: 'Remove all installed git repos and toolchains, unset environment changes',
|
|
8
8
|
run: async ({ print, filesystem, patching }) => {
|
|
9
|
+
var _a;
|
|
9
10
|
const PROFILE_PATH = (0, constants_1.getProfilePath)();
|
|
10
11
|
const spinner = print.spin();
|
|
11
12
|
spinner.start('Tearing down Moddable tools and platform dependencies');
|
|
@@ -16,7 +17,13 @@ const command = {
|
|
|
16
17
|
filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'esp'));
|
|
17
18
|
filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'pico'));
|
|
18
19
|
filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'fontbm'));
|
|
20
|
+
filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'nrf52'));
|
|
19
21
|
if ((0, os_1.type)() === 'Darwin') {
|
|
22
|
+
const NC_PREFS_BACKUP = filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix', 'com.apple.ncprefs.plist');
|
|
23
|
+
if (filesystem.exists(NC_PREFS_BACKUP) === 'file') {
|
|
24
|
+
filesystem.copy(NC_PREFS_BACKUP, filesystem.resolve((_a = process.env.HOME) !== null && _a !== void 0 ? _a : '~', 'Library', 'Preferences', 'com.apple.ncprefs.plist'), { overwrite: true });
|
|
25
|
+
}
|
|
26
|
+
filesystem.remove(filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix'));
|
|
20
27
|
filesystem.remove('/Applications/xsbug.app');
|
|
21
28
|
}
|
|
22
29
|
await patching.patch(PROFILE_PATH, {
|
|
@@ -26,4 +33,4 @@ const command = {
|
|
|
26
33
|
},
|
|
27
34
|
};
|
|
28
35
|
exports.default = command;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdGVhcmRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBeUM7QUFFekMsMERBSW1DO0FBRW5DLE1BQU0sT0FBTyxHQUFtQjtJQUM5QixJQUFJLEVBQUUsVUFBVTtJQUNoQixXQUFXLEVBQ1QsMEVBQTBFO0lBQzVFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7O1FBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUEsMEJBQWMsR0FBRSxDQUFBO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFFdEUsVUFBVSxDQUFDLE1BQU0sQ0FBQyw2QkFBaUIsQ0FBQyxDQUFBO1FBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDOUQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzNELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDekQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzVELFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFM0QsSUFBSSxJQUFBLFNBQVksR0FBRSxLQUFLLFFBQVEsRUFBRTtZQUMvQixNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUN4Qyx1QkFBVyxFQUNYLFVBQVUsRUFDVix5QkFBeUIsQ0FDMUIsQ0FBQTtZQUNELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxJQUFJLENBQ2IsZUFBZSxFQUNmLFVBQVUsQ0FBQyxPQUFPLENBQ2hCLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1DQUFJLEdBQUcsRUFDdkIsU0FBUyxFQUNULGFBQWEsRUFDYix5QkFBeUIsQ0FDMUIsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FDcEIsQ0FBQTthQUNGO1lBQ0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUM5RCxVQUFVLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUE7U0FDN0M7UUFFRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ2pDLE1BQU0sRUFBRSxVQUFVLDZCQUFpQixFQUFFO1NBQ3RDLENBQUMsQ0FBQTtRQUVGLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
|
|
@@ -10,6 +10,7 @@ const esp8266_1 = __importDefault(require("../toolbox/setup/esp8266"));
|
|
|
10
10
|
const esp32_1 = __importDefault(require("../toolbox/setup/esp32"));
|
|
11
11
|
const wasm_1 = __importDefault(require("../toolbox/setup/wasm"));
|
|
12
12
|
const pico_1 = __importDefault(require("../toolbox/setup/pico"));
|
|
13
|
+
const nrf52_1 = __importDefault(require("../toolbox/setup/nrf52"));
|
|
13
14
|
exports.default = async (toolbox) => {
|
|
14
15
|
toolbox.setup = {
|
|
15
16
|
darwin: mac_1.default,
|
|
@@ -23,6 +24,7 @@ exports.default = async (toolbox) => {
|
|
|
23
24
|
esp32: esp32_1.default,
|
|
24
25
|
wasm: wasm_1.default,
|
|
25
26
|
pico: pico_1.default,
|
|
27
|
+
nrf52: nrf52_1.default,
|
|
26
28
|
};
|
|
27
29
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2V0dXAtZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTJDO0FBQzNDLG1FQUErQztBQUMvQyx1RUFBbUQ7QUFDbkQsdUVBQW1EO0FBQ25ELG1FQUErQztBQUMvQyxpRUFBNkM7QUFDN0MsaUVBQTZDO0FBQzdDLG1FQUErQztBQUUvQyxrQkFBZSxLQUFLLEVBQUUsT0FBcUIsRUFBaUIsRUFBRTtJQUM1RCxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsTUFBTSxFQUFFLGFBQVE7UUFDaEIsR0FBRyxFQUFFLGFBQVE7UUFDYixLQUFLLEVBQUUsZUFBVTtRQUNqQixHQUFHLEVBQUUsZUFBVTtRQUNmLFVBQVUsRUFBRSxpQkFBWTtRQUN4QixHQUFHLEVBQUUsaUJBQVk7UUFDakIsR0FBRyxFQUFFLGlCQUFZO1FBQ2pCLE9BQU8sRUFBRSxpQkFBWTtRQUNyQixLQUFLLEVBQUUsZUFBVTtRQUNqQixJQUFJLEVBQUUsY0FBUztRQUNmLElBQUksRUFBRSxjQUFTO1FBQ2YsS0FBSyxFQUFFLGVBQVU7S0FDbEIsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
|
|
@@ -10,6 +10,7 @@ const esp8266_1 = __importDefault(require("../toolbox/update/esp8266"));
|
|
|
10
10
|
const esp32_1 = __importDefault(require("../toolbox/update/esp32"));
|
|
11
11
|
const wasm_1 = __importDefault(require("../toolbox/update/wasm"));
|
|
12
12
|
const pico_1 = __importDefault(require("../toolbox/update/pico"));
|
|
13
|
+
const nrf52_1 = __importDefault(require("../toolbox/update/nrf52"));
|
|
13
14
|
exports.default = async (toolbox) => {
|
|
14
15
|
toolbox.update = {
|
|
15
16
|
darwin: mac_1.default,
|
|
@@ -23,6 +24,7 @@ exports.default = async (toolbox) => {
|
|
|
23
24
|
esp32: esp32_1.default,
|
|
24
25
|
wasm: wasm_1.default,
|
|
25
26
|
pico: pico_1.default,
|
|
27
|
+
nrf52: nrf52_1.default,
|
|
26
28
|
};
|
|
27
29
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3VwZGF0ZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxnRUFBNkM7QUFDN0Msb0VBQWlEO0FBQ2pELHdFQUFxRDtBQUNyRCx3RUFBcUQ7QUFDckQsb0VBQWlEO0FBQ2pELGtFQUErQztBQUMvQyxrRUFBK0M7QUFDL0Msb0VBQWlEO0FBRWpELGtCQUFlLEtBQUssRUFBRSxPQUFxQixFQUFpQixFQUFFO0lBQzVELE9BQU8sQ0FBQyxNQUFNLEdBQUc7UUFDZixNQUFNLEVBQUUsYUFBUztRQUNqQixHQUFHLEVBQUUsYUFBUztRQUNkLEtBQUssRUFBRSxlQUFXO1FBQ2xCLEdBQUcsRUFBRSxlQUFXO1FBQ2hCLFVBQVUsRUFBRSxpQkFBYTtRQUN6QixHQUFHLEVBQUUsaUJBQWE7UUFDbEIsR0FBRyxFQUFFLGlCQUFhO1FBQ2xCLE9BQU8sRUFBRSxpQkFBYTtRQUN0QixLQUFLLEVBQUUsZUFBVztRQUNsQixJQUFJLEVBQUUsY0FBVTtRQUNoQixJQUFJLEVBQUUsY0FBVTtRQUNoQixLQUFLLEVBQUUsZUFBVztLQUNuQixDQUFBO0FBQ0gsQ0FBQyxDQUFBIn0=
|
|
@@ -14,7 +14,7 @@ const moddable_1 = require("../setup/moddable");
|
|
|
14
14
|
const devices_1 = require("../prompt/devices");
|
|
15
15
|
const exec_1 = require("../system/exec");
|
|
16
16
|
async function build({ listDevices, port, example, listExamples, log = false, projectPath, targetPlatform, mode, deployStatus, outputDir, config = {}, }) {
|
|
17
|
-
var _a, _b, _c, _d, _e, _f;
|
|
17
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
18
18
|
const OS = (0, node_os_1.type)().toLowerCase();
|
|
19
19
|
await (0, exec_1.sourceEnvironment)();
|
|
20
20
|
if (!(0, moddable_1.moddableExists)()) {
|
|
@@ -68,9 +68,16 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
|
|
|
68
68
|
'pico/tiny2040',
|
|
69
69
|
'pico/xiao_rp2040',
|
|
70
70
|
'pico/pro_micro',
|
|
71
|
+
'nrf52/moddable_four',
|
|
72
|
+
'nrf52/dk',
|
|
73
|
+
'nrf52/sparkfun',
|
|
74
|
+
'nrf52/makerdiary',
|
|
75
|
+
'nrf52/xiao',
|
|
76
|
+
'nrf52/itsybitsy',
|
|
71
77
|
'simulator/moddable_one',
|
|
72
78
|
'simulator/moddable_two',
|
|
73
79
|
'simulator/moddable_three',
|
|
80
|
+
'simulator/moddable_four',
|
|
74
81
|
'simulator/m5stickc',
|
|
75
82
|
'simulator/m5paper',
|
|
76
83
|
'simulator/nodemcu',
|
|
@@ -129,10 +136,14 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
|
|
|
129
136
|
}
|
|
130
137
|
if (listExamples) {
|
|
131
138
|
const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples');
|
|
139
|
+
const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed');
|
|
132
140
|
const examples = (_f = gluegun_1.filesystem.inspectTree(exampleProjectPath)) === null || _f === void 0 ? void 0 : _f.children;
|
|
141
|
+
const contributed = (_g = gluegun_1.filesystem.inspectTree(contributedProjectPath)) === null || _g === void 0 ? void 0 : _g.children;
|
|
133
142
|
const choices = examples !== undefined
|
|
134
143
|
? examples.map((example) => (0, choices_1.collectChoicesFromTree)(example)).flat()
|
|
135
144
|
: [];
|
|
145
|
+
if (contributed !== undefined)
|
|
146
|
+
choices.push(...contributed.map((project) => (0, choices_1.collectChoicesFromTree)(project)).flat());
|
|
136
147
|
const { example: selectedExample } = await gluegun_1.prompt.ask([
|
|
137
148
|
{
|
|
138
149
|
type: 'autocomplete',
|
|
@@ -152,23 +163,29 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
|
|
|
152
163
|
}
|
|
153
164
|
if (example !== undefined) {
|
|
154
165
|
const exampleProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'examples', example);
|
|
155
|
-
|
|
166
|
+
const contributedProjectPath = gluegun_1.filesystem.resolve(String(process.env.MODDABLE), 'contributed', example);
|
|
167
|
+
if (gluegun_1.filesystem.exists(exampleProjectPath) === false &&
|
|
168
|
+
gluegun_1.filesystem.exists(contributedProjectPath) === false) {
|
|
156
169
|
gluegun_1.print.error('Example project does not exist.');
|
|
157
170
|
gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
|
|
158
171
|
process.exit(1);
|
|
159
172
|
}
|
|
160
|
-
if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(exampleProjectPath, 'manifest.json')) === false
|
|
173
|
+
if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(exampleProjectPath, 'manifest.json')) === false &&
|
|
174
|
+
gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(contributedProjectPath, 'manifest.json')) === false) {
|
|
161
175
|
gluegun_1.print.error('Example project must contain a manifest.json.');
|
|
162
176
|
gluegun_1.print.info(`Lookup the available examples: xs-dev run --list-examples`);
|
|
163
177
|
process.exit(1);
|
|
164
178
|
}
|
|
165
|
-
projectPath =
|
|
179
|
+
projectPath =
|
|
180
|
+
gluegun_1.filesystem.exists(exampleProjectPath) === 'dir'
|
|
181
|
+
? exampleProjectPath
|
|
182
|
+
: contributedProjectPath;
|
|
166
183
|
}
|
|
167
184
|
if (port !== undefined) {
|
|
168
185
|
process.env.UPLOAD_PORT = port;
|
|
169
186
|
}
|
|
170
187
|
const spinner = gluegun_1.print.spin();
|
|
171
|
-
spinner.start(`Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}`);
|
|
188
|
+
spinner.start(`Building${deployStatus !== 'none' ? ' and deploying project' : ''} ${projectPath} on ${targetPlatform}\n`);
|
|
172
189
|
const configArgs = [
|
|
173
190
|
'-m',
|
|
174
191
|
`-p ${targetPlatform}`,
|
|
@@ -197,12 +214,21 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
|
|
|
197
214
|
});
|
|
198
215
|
}
|
|
199
216
|
else {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
stdout: process.stdout,
|
|
203
|
-
stdin: process.stdin,
|
|
204
|
-
shell: true,
|
|
217
|
+
process.on('SIGINT', () => {
|
|
218
|
+
void gluegun_1.system.exec(`pkill serial2xsbug`);
|
|
205
219
|
});
|
|
220
|
+
try {
|
|
221
|
+
await gluegun_1.system.exec(`mcconfig ${configArgs.join(' ')}`, {
|
|
222
|
+
cwd: projectPath,
|
|
223
|
+
stdio: 'inherit',
|
|
224
|
+
shell: true,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
if (error instanceof Error && !error.message.includes('exit code 2')) {
|
|
229
|
+
gluegun_1.print.error(error);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
206
232
|
if (deployStatus === 'push') {
|
|
207
233
|
await gluegun_1.system.exec(`mcconfig -t deploy -p ${targetPlatform} -o ${outputDir}`, {
|
|
208
234
|
cwd: projectPath,
|
|
@@ -225,4 +251,4 @@ async function build({ listDevices, port, example, listExamples, log = false, pr
|
|
|
225
251
|
}
|
|
226
252
|
}
|
|
227
253
|
exports.build = build;
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBMEM7QUFDMUMscUNBQThDO0FBQzlDLGtFQUFtQztBQUNuQywrQkFBbUM7QUFDbkMscUNBQTJEO0FBQzNELCtDQUEwRDtBQUMxRCxnREFBa0Q7QUFDbEQsK0NBQWdEO0FBRWhELHlDQUFrRDtBQWtCM0MsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUMxQixXQUFXLEVBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxZQUFZLEVBQ1osR0FBRyxHQUFHLEtBQUssRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FBRyxFQUFFLEdBQ0Q7O0lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBQSxjQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUVqRCxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUU7UUFDckIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLElBQVQsU0FBUyxHQUFLLG9CQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFBO0lBRXZFLElBQUksV0FBVyxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLO1lBQ0wsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLE9BQU87WUFDUCxvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLHFCQUFxQjtZQUNyQixNQUFNO1lBQ04sTUFBTTtZQUNOLGFBQWE7WUFDYixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsV0FBVztZQUNYLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsMEJBQTBCO1lBQzFCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4QiwwQkFBMEI7U0FDM0IsQ0FBQTtRQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxnQkFBTSxDQUFDLEdBQUcsQ0FBQztZQUNsRDtnQkFDRSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLHdDQUF3QztnQkFDakQsT0FBTzthQUNSO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDekQsY0FBYyxHQUFHLGNBQWMsQ0FBQTtTQUNoQzthQUFNO1lBQ0wsZUFBSyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO1lBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEI7S0FDRjtJQUVELElBQUksY0FBYyxLQUFLLEVBQUUsRUFBRTtRQUN6QixJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEMsSUFDRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVE7Z0JBQ3hDLG9CQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUNqRDtnQkFDQSxlQUFLLENBQUMsS0FBSyxDQUNULGdKQUFnSixDQUNqSixDQUFBO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7U0FDRjthQUFNLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxJQUNFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUTtnQkFDeEMsb0JBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQ2pEO2dCQUNBLGVBQUssQ0FBQyxLQUFLLENBQ1Qsb0pBQW9KLENBQ3JKLENBQUE7Z0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLElBQ0UsQ0FBQyxDQUFDLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQzlDLG9CQUFVLENBQUMsTUFBTSxDQUFDLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLG1DQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUs7Z0JBQ3BELG9CQUFVLENBQUMsTUFBTSxDQUFDLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQyxLQUFLLE1BQU07Z0JBQzFELG9CQUFVLENBQUMsTUFBTSxDQUFDLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLG1DQUFJLEVBQUUsQ0FBQyxLQUFLLE1BQU0sRUFDNUQ7Z0JBQ0EsZUFBSyxDQUFDLEtBQUssQ0FDVCw4SUFBOEksQ0FDL0ksQ0FBQTtnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ2hCO1NBQ0Y7UUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsSUFDRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLFFBQVE7Z0JBQzdDLG9CQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSztnQkFDdEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSTtnQkFDakMsb0JBQVUsQ0FBQyxNQUFNLENBQUMsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFDLEtBQUssTUFBTSxFQUN0RDtnQkFDQSxlQUFLLENBQUMsS0FBSyxDQUNULDhJQUE4SSxDQUMvSSxDQUFBO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDaEI7U0FDRjtLQUNGO0lBRUQsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxrQkFBa0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQzVCLFVBQVUsQ0FDWCxDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBQSxvQkFBVSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywwQ0FBRSxRQUFRLENBQUE7UUFDckUsTUFBTSxPQUFPLEdBQ1gsUUFBUSxLQUFLLFNBQVM7WUFDcEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUEsZ0NBQXNCLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDbkUsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNSLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxnQkFBTSxDQUFDLEdBQUcsQ0FBQztZQUNwRDtnQkFDRSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLGtDQUFrQztnQkFDM0MsT0FBTzthQUNSO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxlQUFlLEtBQUssRUFBRSxJQUFJLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDM0QsZUFBSyxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsZUFBZSxFQUFFLENBQUMsQ0FBQTtZQUMxRSxXQUFXLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUE7U0FDdEU7YUFBTTtZQUNMLGVBQUssQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtZQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO0tBQ0Y7SUFFRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7UUFDekIsTUFBTSxrQkFBa0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQzVCLFVBQVUsRUFDVixPQUFPLENBQ1IsQ0FBQTtRQUNELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDbkQsZUFBSyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1lBQzlDLGVBQUssQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQTtZQUN2RSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO1FBQ0QsSUFDRSxvQkFBVSxDQUFDLE1BQU0sQ0FDZixvQkFBVSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUMsQ0FDeEQsS0FBSyxLQUFLLEVBQ1g7WUFDQSxlQUFLLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUE7WUFDNUQsZUFBSyxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFBO1lBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEI7UUFDRCxXQUFXLEdBQUcsa0JBQWtCLENBQUE7S0FDakM7SUFFRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO0tBQy9CO0lBRUQsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRTVCLE9BQU8sQ0FBQyxLQUFLLENBQ1gsV0FDRSxZQUFZLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFDdkQsSUFBSSxXQUFXLE9BQU8sY0FBYyxFQUFFLENBQ3ZDLENBQUE7SUFFRCxNQUFNLFVBQVUsR0FBRztRQUNqQixJQUFJO1FBQ0osTUFBTSxjQUFjLEVBQUU7UUFDdEIsTUFBTSxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNoRCxNQUFNLFNBQVMsRUFBRTtLQUNsQixDQUFBO0lBQ0QsSUFBSSxJQUFJLEtBQUssYUFBYTtRQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakQsSUFBSSxJQUFJLEtBQUssWUFBWTtRQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEQsSUFBSSxHQUFHO1FBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUU5QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDbEQsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQzFDLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxHQUFHLEVBQUU7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFBLDBCQUFLLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRTtZQUM5QyxHQUFHLEVBQUUsV0FBVztZQUNoQixLQUFLLEVBQUUsU0FBUztZQUNoQixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQTtRQUNGLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7S0FDSDtTQUFNO1FBQ0wsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUNwRCxHQUFHLEVBQUUsV0FBVztZQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFBO1FBRUYsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFO1lBQzNCLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQ2YseUJBQXlCLGNBQWMsT0FBTyxTQUFTLEVBQUUsRUFDekQ7Z0JBQ0UsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLE9BQU87YUFDUixDQUNGLENBQUE7U0FDRjtLQUNGO0lBRUQsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRWQsSUFBSSxZQUFZLEtBQUssTUFBTSxJQUFJLGNBQWMsS0FBSyxNQUFNLEVBQUU7UUFDeEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQzVCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLENBQ1YsQ0FBQTtRQUNELElBQUEsbUJBQVksRUFBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN4QixLQUFLLElBQUEsdUJBQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDL0MsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDbkIsZUFBSyxDQUFDLElBQUksQ0FDUixnR0FBZ0csQ0FDakcsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0tBQ0g7U0FBTSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUM7QUF2UkQsc0JBdVJDIn0=
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9idWlsZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBMEM7QUFDMUMscUNBQThDO0FBQzlDLGtFQUFtQztBQUNuQywrQkFBbUM7QUFDbkMscUNBQTJEO0FBQzNELCtDQUEwRDtBQUMxRCxnREFBa0Q7QUFDbEQsK0NBQWdEO0FBRWhELHlDQUFrRDtBQWtCM0MsS0FBSyxVQUFVLEtBQUssQ0FBQyxFQUMxQixXQUFXLEVBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxZQUFZLEVBQ1osR0FBRyxHQUFHLEtBQUssRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sR0FBRyxFQUFFLEdBQ0Q7O0lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBQSxjQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUVqRCxNQUFNLElBQUEsd0JBQWlCLEdBQUUsQ0FBQTtJQUV6QixJQUFJLENBQUMsSUFBQSx5QkFBYyxHQUFFLEVBQUU7UUFDckIsZUFBSyxDQUFDLEtBQUssQ0FDVCx5REFBeUQsc0JBQVksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQ2xHLENBQUE7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLElBQVQsU0FBUyxHQUFLLG9CQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFBO0lBRXZFLElBQUksV0FBVyxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdBQUc7WUFDZCxLQUFLO1lBQ0wsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLE9BQU87WUFDUCxvQkFBb0I7WUFD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
|
|
@@ -13,5 +13,6 @@ exports.DEVICE_ALIAS = Object.freeze({
|
|
|
13
13
|
esp32: 'esp32',
|
|
14
14
|
wasm: 'wasm',
|
|
15
15
|
pico: 'pico',
|
|
16
|
+
nrf52: 'nrf52',
|
|
16
17
|
});
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3Byb21wdC9kZXZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsWUFBWSxHQUF1QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87Q0FDZixDQUFDLENBQUEifQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const gluegun_1 = require("gluegun");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const os_1 = require("os");
|
|
9
|
+
const simple_plist_1 = __importDefault(require("simple-plist"));
|
|
10
|
+
const NC_PREFS_PLIST = 'com.apple.ncprefs.plist';
|
|
11
|
+
const DISK_AGENT_NC_PREF_ID = '_SYSTEM_CENTER_:com.apple.DiskArbitration.DiskArbitrationAgent';
|
|
12
|
+
async function default_1() {
|
|
13
|
+
var _a;
|
|
14
|
+
const spinner = gluegun_1.print.spin();
|
|
15
|
+
spinner.start('Beginning setup...');
|
|
16
|
+
const OS = (0, os_1.type)().toLowerCase();
|
|
17
|
+
if (OS !== 'darwin') {
|
|
18
|
+
gluegun_1.print.error(`OS "${OS}" not supported`);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const PREFS_DIR = gluegun_1.filesystem.resolve((_a = process.env.HOME) !== null && _a !== void 0 ? _a : '~', 'Library', 'Preferences');
|
|
22
|
+
const PREFS_BACKUP_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'ejectfix');
|
|
23
|
+
const NC_PREFS_PATH = gluegun_1.filesystem.resolve(PREFS_DIR, NC_PREFS_PLIST);
|
|
24
|
+
gluegun_1.filesystem.dir(PREFS_BACKUP_DIR);
|
|
25
|
+
if (gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(PREFS_BACKUP_DIR, NC_PREFS_PLIST)) !==
|
|
26
|
+
false) {
|
|
27
|
+
spinner.info('A backup of your notification preferences already exists.');
|
|
28
|
+
const shouldContinue = await gluegun_1.prompt.confirm('Would you like to override this backup and continue?');
|
|
29
|
+
if (!shouldContinue) {
|
|
30
|
+
gluegun_1.print.info('Cancelling ejectfix setup.');
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (gluegun_1.filesystem.exists(NC_PREFS_PATH) === false) {
|
|
35
|
+
spinner.fail(`Cannot find notification preferences file: ${NC_PREFS_PATH}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
gluegun_1.filesystem.copy(NC_PREFS_PATH, gluegun_1.filesystem.resolve(PREFS_BACKUP_DIR, NC_PREFS_PLIST), { overwrite: true });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
spinner.fail(`Error copying notification preferences: ${String(error)}`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const prefs = simple_plist_1.default.readFileSync(NC_PREFS_PATH);
|
|
47
|
+
for (const app of prefs.apps) {
|
|
48
|
+
if (app['bundle-id'] === DISK_AGENT_NC_PREF_ID) {
|
|
49
|
+
app.flags = (Number(app.flags) & ~0b00010000) | 0b01001000;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
simple_plist_1.default.writeBinaryFileSync(NC_PREFS_PATH, prefs);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
spinner.fail(`Unable to update notification preferences: ${String(error)}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
await gluegun_1.system.exec('killall usernoted cfprefsd');
|
|
59
|
+
spinner.succeed('Successfully updated notification preferences for `DISK NOT EJECTED PROPERLY` warning!');
|
|
60
|
+
}
|
|
61
|
+
exports.default = default_1;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWplY3RmaXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9lamVjdGZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFDQUEyRDtBQUMzRCwyQ0FBeUM7QUFDekMsMkJBQXlDO0FBQ3pDLGdFQUFnQztBQUVoQyxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQTtBQUNoRCxNQUFNLHFCQUFxQixHQUN6QixnRUFBZ0UsQ0FBQTtBQUVuRCxLQUFLOztJQUNsQixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBRW5DLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDdkMsSUFBSSxFQUFFLEtBQUssUUFBUSxFQUFFO1FBQ25CLGVBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQ0FBSSxHQUFHLEVBQ3ZCLFNBQVMsRUFDVCxhQUFhLENBQ2QsQ0FBQTtJQUNELE1BQU0sZ0JBQWdCLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUNwRSxNQUFNLGFBQWEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFbkUsb0JBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUVoQyxJQUNFLG9CQUFVLENBQUMsTUFBTSxDQUFDLG9CQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssRUFDTDtRQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQTtRQUN6RSxNQUFNLGNBQWMsR0FBRyxNQUFNLGdCQUFNLENBQUMsT0FBTyxDQUN6QyxzREFBc0QsQ0FDdkQsQ0FBQTtRQUNELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsZUFBSyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDaEI7S0FDRjtJQUNELElBQUksb0JBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsOENBQThDLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELElBQUk7UUFDRixvQkFBVSxDQUFDLElBQUksQ0FDYixhQUFhLEVBQ2Isb0JBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLEVBQ3BELEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFBO0tBQ0Y7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtJQUVELElBQUk7UUFDRixNQUFNLEtBQUssR0FDVCxzQkFBSyxDQUFDLFlBQVksQ0FFZixhQUFhLENBQUMsQ0FBQTtRQUNuQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDNUIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUsscUJBQXFCLEVBQUU7Z0JBQzlDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFBO2FBQzNEO1NBQ0Y7UUFDRCxzQkFBSyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUNoRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0lBRUQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQ2Isd0ZBQXdGLENBQ3pGLENBQUE7QUFDSCxDQUFDO0FBckVELDRCQXFFQyJ9
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installPython = void 0;
|
|
4
|
+
const gluegun_1 = require("gluegun");
|
|
5
|
+
async function installPython(spinner) {
|
|
6
|
+
if (gluegun_1.system.which('python') === null) {
|
|
7
|
+
// For some reason, system.which does not work with winget. This is a workaround for now.
|
|
8
|
+
try {
|
|
9
|
+
await gluegun_1.system.exec('where winget');
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
gluegun_1.print.error('Python 2.7 is required.');
|
|
13
|
+
gluegun_1.print.info('You can download and install Python from python.org/downloads');
|
|
14
|
+
gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
|
|
15
|
+
gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
|
|
16
|
+
gluegun_1.print.info('Please install either Python or winget, then launch a new Command Prompt and re-run this setup.');
|
|
17
|
+
throw new Error('Python is required');
|
|
18
|
+
}
|
|
19
|
+
spinner.start('Installing python from winget');
|
|
20
|
+
await gluegun_1.system.exec('winget install -e --id Python.Python.2 --silent');
|
|
21
|
+
spinner.succeed();
|
|
22
|
+
gluegun_1.print.info('Python successfully installed. Please close this window and launch a new Moddable Command Prompt to refresh environment variables, then re-run this setup.');
|
|
23
|
+
throw new Error('Command Prompt restart needed');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.installPython = installPython;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL25yZjUyL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFEO0FBRTlDLEtBQUssVUFBVSxhQUFhLENBQ2pDLE9BQXlDO0lBRXpDLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25DLHlGQUF5RjtRQUN6RixJQUFJO1lBQ0YsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUNsQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsZUFBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLGVBQUssQ0FBQyxJQUFJLENBQ1IsK0RBQStELENBQ2hFLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGtIQUFrSCxDQUNuSCxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUiw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsaUdBQWlHLENBQ2xHLENBQUE7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUE7U0FDdEM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDOUMsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNqQixlQUFLLENBQUMsSUFBSSxDQUNSLDRKQUE0SixDQUM3SixDQUFBO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0tBQ2pEO0FBQ0gsQ0FBQztBQWhDRCxzQ0FnQ0MifQ==
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const axios_1 = __importDefault(require("axios"));
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const gluegun_1 = require("gluegun");
|
|
9
|
+
const os_1 = require("os");
|
|
10
|
+
const stream_1 = require("stream");
|
|
11
|
+
const tar_fs_1 = require("tar-fs");
|
|
12
|
+
const util_1 = require("util");
|
|
13
|
+
const unzip_stream_1 = require("unzip-stream");
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
const node_liblzma_1 = require("node-liblzma");
|
|
17
|
+
const devices_1 = require("../prompt/devices");
|
|
18
|
+
const exec_1 = require("../system/exec");
|
|
19
|
+
const constants_1 = require("./constants");
|
|
20
|
+
const moddable_1 = require("./moddable");
|
|
21
|
+
const windows_1 = require("./windows");
|
|
22
|
+
const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
23
|
+
const windows_2 = require("./nrf52/windows");
|
|
24
|
+
const finishedPromise = (0, util_1.promisify)(stream_1.finished);
|
|
25
|
+
const ARCH_ALIAS = {
|
|
26
|
+
darwin_arm64: 'darwin-arm64',
|
|
27
|
+
darwin_x64: 'darwin-x86_64',
|
|
28
|
+
linux_x64: 'x86_64',
|
|
29
|
+
windows_nt_x64: 'mingw-w64-i686',
|
|
30
|
+
};
|
|
31
|
+
async function default_1() {
|
|
32
|
+
const OS = (0, os_1.type)().toLowerCase();
|
|
33
|
+
const isWindows = OS === 'windows_nt';
|
|
34
|
+
const TOOLCHAIN = `arm-gnu-toolchain-12.2.rel1-${ARCH_ALIAS[`${OS}_${(0, os_1.arch)()}`]}-arm-none-eabi`;
|
|
35
|
+
const TOOLCHAIN_DOWNLOAD = `https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/${TOOLCHAIN}.${isWindows ? 'zip' : 'tar.xz'}`;
|
|
36
|
+
const ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD = 'https://github.com/Moddable-OpenSource/tools/releases/download/v1.0.0/uf2conv.py';
|
|
37
|
+
const NRF5_SDK = 'nRF5_SDK_17.0.2_d674dde';
|
|
38
|
+
const NRF5_SDK_DOWNLOAD = `https://github.com/Moddable-OpenSource/tools/releases/download/v1.0.0/${NRF5_SDK}-mod.zip`;
|
|
39
|
+
const NRF52_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'nrf52');
|
|
40
|
+
const TOOLCHAIN_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, TOOLCHAIN);
|
|
41
|
+
const UF2CONV_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, 'uf2conv.py');
|
|
42
|
+
const NRF5_SDK_PATH = gluegun_1.filesystem.resolve(NRF52_DIR, NRF5_SDK);
|
|
43
|
+
await (0, exec_1.sourceEnvironment)();
|
|
44
|
+
const spinner = gluegun_1.print.spin();
|
|
45
|
+
spinner.start('Setting up nrf52 tools');
|
|
46
|
+
if (!(0, moddable_1.moddableExists)()) {
|
|
47
|
+
spinner.fail(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
if (isWindows) {
|
|
51
|
+
await (0, windows_1.ensureModdableCommandPrompt)(spinner);
|
|
52
|
+
}
|
|
53
|
+
spinner.info('Ensuring nrf52 directory');
|
|
54
|
+
gluegun_1.filesystem.dir(NRF52_DIR);
|
|
55
|
+
if (gluegun_1.filesystem.exists(TOOLCHAIN_PATH) === false) {
|
|
56
|
+
spinner.start('Downloading GNU Arm Embedded Toolchain');
|
|
57
|
+
const writer = isWindows
|
|
58
|
+
? (0, unzip_stream_1.Extract)({ path: NRF52_DIR })
|
|
59
|
+
: (0, tar_fs_1.extract)(NRF52_DIR, { readable: true });
|
|
60
|
+
const unxz = (0, node_liblzma_1.createUnxz)();
|
|
61
|
+
const response = await axios_1.default.get(TOOLCHAIN_DOWNLOAD, {
|
|
62
|
+
responseType: 'stream',
|
|
63
|
+
});
|
|
64
|
+
const stream = isWindows ? response.data : response.data.pipe(unxz);
|
|
65
|
+
stream.pipe(writer);
|
|
66
|
+
await finishedPromise(writer);
|
|
67
|
+
spinner.succeed();
|
|
68
|
+
}
|
|
69
|
+
if (gluegun_1.filesystem.exists(UF2CONV_PATH) === false) {
|
|
70
|
+
spinner.start('Downloading Adafruit nRF52 Bootloader');
|
|
71
|
+
const writer = (0, fs_1.createWriteStream)(UF2CONV_PATH, { mode: 0o755 });
|
|
72
|
+
const response = await axios_1.default.get(ADAFRUIT_NRF52_BOOTLOADER_UF2CONV_DOWNLOAD, {
|
|
73
|
+
responseType: 'stream',
|
|
74
|
+
});
|
|
75
|
+
response.data.pipe(writer);
|
|
76
|
+
await finishedPromise(writer);
|
|
77
|
+
spinner.succeed();
|
|
78
|
+
}
|
|
79
|
+
if (gluegun_1.filesystem.exists(NRF5_SDK_PATH) === false) {
|
|
80
|
+
spinner.start('Downloading nRF5 SDK');
|
|
81
|
+
const writer = (0, unzip_stream_1.Extract)({ path: NRF52_DIR });
|
|
82
|
+
const response = await axios_1.default.get(NRF5_SDK_DOWNLOAD, {
|
|
83
|
+
responseType: 'stream',
|
|
84
|
+
});
|
|
85
|
+
response.data.pipe(writer);
|
|
86
|
+
await finishedPromise(writer);
|
|
87
|
+
spinner.succeed();
|
|
88
|
+
}
|
|
89
|
+
if (OS === 'darwin' || OS === 'linux') {
|
|
90
|
+
if (process.env.NRF_ROOT === undefined ||
|
|
91
|
+
process.env.NRF_SDK_DIR === undefined) {
|
|
92
|
+
spinner.info('Configuring $NRF_ROOT and $NRF_SDK_DIR');
|
|
93
|
+
process.env.NRF_ROOT = NRF52_DIR;
|
|
94
|
+
process.env.NRF_SDK_DIR = NRF5_SDK_PATH;
|
|
95
|
+
await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export NRF_ROOT=${process.env.NRF_ROOT}\nexport NRF_SDK_DIR=${process.env.NRF_SDK_DIR}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
process.env.NRF_ROOT = NRF52_DIR;
|
|
100
|
+
process.env.NRF52_SDK_PATH = NRF5_SDK_PATH;
|
|
101
|
+
await (0, windows_1.setEnv)('NRF_ROOT', NRF52_DIR);
|
|
102
|
+
await (0, windows_1.setEnv)('NRF52_SDK_PATH', NRF5_SDK_PATH);
|
|
103
|
+
try {
|
|
104
|
+
await (0, windows_2.installPython)(spinner);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
// Command Prompt restart needed
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (OS === 'linux') {
|
|
112
|
+
try {
|
|
113
|
+
await (0, exec_1.execWithSudo)('adduser $USER dialout', { process });
|
|
114
|
+
}
|
|
115
|
+
catch (_error) {
|
|
116
|
+
gluegun_1.print.warning(`Unable to provide ttyUSB0 permission to the current user. Please run "sudo adduser <username> dialout" before trying to attempting to build projects for your nrf52 device.`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
spinner.succeed(`
|
|
120
|
+
Successfully set up nrf52 platform support for Moddable!
|
|
121
|
+
Test out the setup by starting a new ${isWindows ? 'Moddable Command Prompt' : 'terminal session'}, plugging in your device, and running: xs-dev run --example helloworld --device nrf52
|
|
122
|
+
`);
|
|
123
|
+
}
|
|
124
|
+
exports.default = default_1;
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9ucmY1Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUF5QjtBQUN6QiwyQkFBc0M7QUFDdEMscUNBQTJDO0FBQzNDLDJCQUErQztBQUMvQyxtQ0FBaUM7QUFDakMsbUNBQWdDO0FBQ2hDLCtCQUFnQztBQUNoQywrQ0FBb0Q7QUFDcEQscUVBQXFFO0FBQ3JFLGFBQWE7QUFDYiwrQ0FBeUM7QUFFekMsK0NBQWdEO0FBQ2hELHlDQUFnRTtBQUNoRSwyQ0FBNEQ7QUFDNUQseUNBQTJDO0FBQzNDLHVDQUErRDtBQUMvRCxnRUFBdUM7QUFDdkMsNkNBQStDO0FBRS9DLE1BQU0sZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxpQkFBUSxDQUFDLENBQUE7QUFFM0MsTUFBTSxVQUFVLEdBQTJCO0lBQ3pDLFlBQVksRUFBRSxjQUFjO0lBQzVCLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLGNBQWMsRUFBRSxnQkFBZ0I7Q0FDakMsQ0FBQTtBQUNjLEtBQUs7SUFDbEIsTUFBTSxFQUFFLEdBQUcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtJQUNqRCxNQUFNLFNBQVMsR0FBRyxFQUFFLEtBQUssWUFBWSxDQUFBO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLCtCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksSUFBQSxTQUFJLEdBQUUsRUFBRSxDQUM5QixnQkFBZ0IsQ0FBQTtJQUNoQixNQUFNLGtCQUFrQixHQUFHLDBFQUEwRSxTQUFTLElBQzVHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUN0QixFQUFFLENBQUE7SUFDRixNQUFNLDBDQUEwQyxHQUM5QyxrRkFBa0YsQ0FBQTtJQUNwRixNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQTtJQUMxQyxNQUFN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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const gluegun_1 = require("gluegun");
|
|
4
|
+
async function default_1() {
|
|
5
|
+
gluegun_1.print.warning('nRF52 update is not currently supported');
|
|
6
|
+
}
|
|
7
|
+
exports.default = default_1;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnJmNTIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbGJveC91cGRhdGUvbnJmNTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBK0I7QUFFaEIsS0FBSztJQUNsQixlQUFLLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUZELDRCQUVDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): Promise<void>;
|
package/build/types/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { GluegunToolbox } from 'gluegun';
|
|
2
2
|
import type { PlatformSetupArgs, SetupArgs } from './toolbox/setup/types';
|
|
3
3
|
import type { BuildArgs } from './toolbox/build/index';
|
|
4
|
-
export declare type Device = 'darwin' | 'mac' | 'linux' | 'lin' | 'windows_nt' | 'win' | 'esp' | 'esp8266' | 'esp32' | 'wasm' | 'pico';
|
|
4
|
+
export declare type Device = 'darwin' | 'mac' | 'linux' | 'lin' | 'windows_nt' | 'win' | 'esp' | 'esp8266' | 'esp32' | 'wasm' | 'pico' | 'nrf52';
|
|
5
5
|
export interface XSDevToolbox extends GluegunToolbox {
|
|
6
6
|
setup: Record<Device, (() => Promise<void>) | ((args: SetupArgs | PlatformSetupArgs) => Promise<void>)>;
|
|
7
7
|
update: Record<Device, (() => Promise<void>) | ((args: SetupArgs) => Promise<void>)>;
|
|
@@ -19,6 +19,12 @@ This process mostly automates the instructions provided by [Moddable's "Getting
|
|
|
19
19
|
|
|
20
20
|
[Homebrew](https://brew.sh/) is assumed to be installed.
|
|
21
21
|
|
|
22
|
+
[XZ utils](https://tukaani.org/xz/) are required to install the CLI due to a dependency for decompressing the ARM toolchain used for nrf52 development. It can be installed with homebrew:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
brew install xz
|
|
26
|
+
```
|
|
27
|
+
|
|
22
28
|
The [Xcode Command Line tools](https://developer.apple.com/xcode/) are required; `setup` will check for their existence before continuing.
|
|
23
29
|
|
|
24
30
|
A symlink for [`xsbug.app`](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/xs/xsbug.md) is created in `/Applications` for easy access through Launchpad.
|
|
@@ -74,3 +80,9 @@ There are some utilities that are not included in the Moddable SDK or other plat
|
|
|
74
80
|
```
|
|
75
81
|
xs-dev setup --tool fontbm
|
|
76
82
|
```
|
|
83
|
+
|
|
84
|
+
`ejectfix`: not a downloadable tool, rather a environment preference to disable the `DISK NOT EJECTED PROPERLY` notification while working with the nrf52 on MacOS. This will automate the process described by [the Adafruit blog](https://blog.adafruit.com/2021/05/11/how-to-tone-down-macos-big-surs-circuitpy-eject-notifications/):
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
xs-dev setup --tool ejectfix
|
|
88
|
+
```
|
|
@@ -61,7 +61,7 @@ Check out the [npm docs](https://docs.npmjs.com/resolving-eacces-permissions-err
|
|
|
61
61
|
|
|
62
62
|
## Linux Permissions
|
|
63
63
|
|
|
64
|
-
Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/
|
|
64
|
+
Setup commands rely on [`ssh-askpass`](https://packages.ubuntu.com/focal/ssh-askpass) to prompt for permission when installing other tools and dependencies.
|
|
65
65
|
|
|
66
66
|
## Choose your hardware adventure
|
|
67
67
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xs-dev",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"description": "CLI for automating the setup and usage of Moddable XS tools",
|
|
5
5
|
"types": "build/types/types.d.ts",
|
|
6
6
|
"bin": {
|
|
@@ -44,9 +44,10 @@
|
|
|
44
44
|
"@octokit/rest": "^19.0.3",
|
|
45
45
|
"axios": "^1.2.1",
|
|
46
46
|
"gluegun": "^5.1.2",
|
|
47
|
+
"node-liblzma": "^1.1.9",
|
|
47
48
|
"serialport": "^10.3.0",
|
|
48
49
|
"serve-handler": "^6.1.3",
|
|
49
|
-
"
|
|
50
|
+
"simple-plist": "^1.3.1",
|
|
50
51
|
"tar-fs": "^2.1.1",
|
|
51
52
|
"unzip-stream": "^0.3.1",
|
|
52
53
|
"usb": "^2.2.0",
|
|
@@ -76,6 +77,7 @@
|
|
|
76
77
|
"prettier": "^2.5.1",
|
|
77
78
|
"release-it": "^15.11.0",
|
|
78
79
|
"rollup": "^2.78.1",
|
|
80
|
+
"solid-js": "^1.4.3",
|
|
79
81
|
"tailwindcss": "^3.0.24",
|
|
80
82
|
"ts-jest": "^27.1.2",
|
|
81
83
|
"ts-node": "^10.9.1",
|
|
@@ -101,7 +103,9 @@
|
|
|
101
103
|
"ansi-regex@>=3.0.0 <3.0.1": ">=3.0.1",
|
|
102
104
|
"ansi-regex@>=4.0.0 <4.1.1": ">=4.1.1",
|
|
103
105
|
"minimatch@<3.0.5": ">=3.0.5",
|
|
104
|
-
"conventional-changelog-conventionalcommits": ">=5.0.0"
|
|
106
|
+
"conventional-changelog-conventionalcommits": ">=5.0.0",
|
|
107
|
+
"string-width": "<5.0.0",
|
|
108
|
+
"ansi-regex": "<6.0.0"
|
|
105
109
|
}
|
|
106
110
|
},
|
|
107
111
|
"release-it": {
|