xs-dev 0.38.1 → 1.0.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 +1 -1
- package/build/package.json +13 -3
- package/build/src/commands/doctor.js +4 -3
- package/build/src/commands/init.js +3 -3
- package/build/src/commands/remove.js +2 -2
- package/build/src/commands/setup.js +21 -7
- package/build/src/toolbox/setup/ejectfix.js +29 -26
- package/build/src/toolbox/setup/esp32/linux.js +7 -3
- package/build/src/toolbox/setup/esp32/mac.js +5 -3
- package/build/src/toolbox/setup/esp32/windows.js +4 -2
- package/build/src/toolbox/setup/esp32.js +18 -8
- package/build/src/toolbox/setup/esp8266/linux.js +10 -4
- package/build/src/toolbox/setup/esp8266/mac.js +5 -3
- package/build/src/toolbox/setup/esp8266/windows.js +10 -9
- package/build/src/toolbox/setup/esp8266.js +16 -10
- package/build/src/toolbox/setup/lin.js +19 -7
- package/build/src/toolbox/setup/mac.js +14 -9
- package/build/src/toolbox/setup/moddable.js +35 -28
- package/build/src/toolbox/setup/nrf52/windows.js +5 -3
- package/build/src/toolbox/setup/nrf52.js +12 -10
- package/build/src/toolbox/setup/pico/linux.js +6 -2
- package/build/src/toolbox/setup/pico/mac.js +4 -2
- package/build/src/toolbox/setup/pico.js +10 -4
- package/build/src/toolbox/setup/wasm.js +7 -5
- package/build/src/toolbox/setup/windows.js +21 -14
- package/build/src/toolbox/system/__tests__/errors.test.js +163 -0
- package/build/src/toolbox/system/__tests__/exec.test.js +130 -0
- package/build/src/toolbox/system/errors.js +106 -0
- package/build/src/toolbox/system/exec.js +34 -28
- package/build/src/toolbox/system/packages.js +29 -26
- package/build/src/toolbox/system/python.js +11 -4
- package/build/src/toolbox/update/esp32.js +6 -4
- package/build/src/toolbox/update/lin.js +8 -2
- package/build/src/toolbox/update/mac.js +8 -2
- package/build/types/src/toolbox/setup/ejectfix.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32/windows.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp32.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/esp8266/windows.d.ts +3 -2
- package/build/types/src/toolbox/setup/esp8266.d.ts +2 -1
- package/build/types/src/toolbox/setup/lin.d.ts +2 -1
- package/build/types/src/toolbox/setup/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/moddable.d.ts +4 -3
- package/build/types/src/toolbox/setup/nrf52/windows.d.ts +2 -1
- package/build/types/src/toolbox/setup/nrf52.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico/linux.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico/mac.d.ts +2 -1
- package/build/types/src/toolbox/setup/pico.d.ts +2 -1
- package/build/types/src/toolbox/setup/wasm.d.ts +2 -1
- package/build/types/src/toolbox/setup/windows.d.ts +3 -2
- package/build/types/src/toolbox/system/__tests__/errors.test.d.ts +1 -0
- package/build/types/src/toolbox/system/__tests__/exec.test.d.ts +1 -0
- package/build/types/src/toolbox/system/errors.d.ts +51 -0
- package/build/types/src/toolbox/system/exec.d.ts +6 -5
- package/build/types/src/toolbox/system/packages.d.ts +3 -2
- package/build/types/src/toolbox/system/python.d.ts +2 -1
- package/build/types/src/types.d.ts +10 -0
- package/package.json +13 -3
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.installDeps = installDeps;
|
|
4
4
|
const gluegun_1 = require("gluegun");
|
|
5
5
|
const homebrew_1 = require("../homebrew");
|
|
6
|
+
const errors_1 = require("../../system/errors");
|
|
6
7
|
async function installDeps(spinner) {
|
|
7
8
|
try {
|
|
8
9
|
await (0, homebrew_1.ensureHomebrew)();
|
|
@@ -10,7 +11,7 @@ async function installDeps(spinner) {
|
|
|
10
11
|
catch (error) {
|
|
11
12
|
if (error instanceof Error) {
|
|
12
13
|
gluegun_1.print.info(`${error.message} python`);
|
|
13
|
-
|
|
14
|
+
return (0, errors_1.failure)(`${error.message} python`);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
if (gluegun_1.system.which('python') === null) {
|
|
@@ -24,7 +25,7 @@ async function installDeps(spinner) {
|
|
|
24
25
|
catch (error) {
|
|
25
26
|
if (error instanceof Error && error.message.includes('xcode-select')) {
|
|
26
27
|
spinner.fail('Apple Command Line Tools must be installed in order to install python from Homebrew. Please run `xcode-select --install` before trying again.');
|
|
27
|
-
|
|
28
|
+
return (0, errors_1.failure)('Apple Command Line Tools must be installed in order to install python from Homebrew. Please run `xcode-select --install` before trying again.');
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -37,5 +38,6 @@ async function installDeps(spinner) {
|
|
|
37
38
|
spinner.start('Installing pyserial through pip');
|
|
38
39
|
await gluegun_1.system.exec('python3 -m pip install pyserial');
|
|
39
40
|
spinner.succeed();
|
|
41
|
+
return (0, errors_1.successVoid)();
|
|
40
42
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvZXNwODI2Ni9tYWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxrQ0E0Q0M7QUFsREQscUNBQXVDO0FBRXZDLDBDQUE0QztBQUM1QyxnREFBMEQ7QUFHbkQsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsT0FBeUM7SUFFekMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFBLHlCQUFjLEdBQUUsQ0FBQTtJQUN4QixDQUFDO0lBQUMsT0FBTyxLQUFjLEVBQUUsQ0FBQztRQUN4QixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMzQixlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sU0FBUyxDQUFDLENBQUE7WUFDckMsT0FBTyxJQUFBLGdCQUFPLEVBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxTQUFTLENBQUMsQ0FBQTtRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVoRCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1lBQ2hELElBQUksQ0FBQztnQkFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtnQkFDdEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ25CLENBQUM7WUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsT0FBTyxDQUFDLElBQUksQ0FDViwrSUFBK0ksQ0FDaEosQ0FBQTtvQkFDRCxPQUFPLElBQUEsZ0JBQU8sRUFDWiwrSUFBK0ksQ0FDaEosQ0FBQTtnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNoRCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtJQUNoRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDcEQsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLE9BQU8sSUFBQSxvQkFBVyxHQUFFLENBQUE7QUFDdEIsQ0FBQyJ9
|
|
@@ -12,6 +12,7 @@ const unzip_stream_1 = require("unzip-stream");
|
|
|
12
12
|
const util_1 = require("util");
|
|
13
13
|
const windows_1 = require("../windows");
|
|
14
14
|
const constants_1 = require("../constants");
|
|
15
|
+
const errors_1 = require("../../system/errors");
|
|
15
16
|
const finishedPromise = (0, util_1.promisify)(stream_1.finished);
|
|
16
17
|
const ESP_TOOL = 'https://github.com/igrr/esptool-ck/releases/download/0.4.13/esptool-0.4.13-win32.zip';
|
|
17
18
|
const ESP_TOOL_VERSION = 'esptool-0.4.13-win32';
|
|
@@ -28,14 +29,15 @@ async function installPython(spinner) {
|
|
|
28
29
|
gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
|
|
29
30
|
gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
|
|
30
31
|
gluegun_1.print.info('Please install either Python or winget, then launch a new Command Prompt and re-run this setup.');
|
|
31
|
-
|
|
32
|
+
return (0, errors_1.failure)('Python is required');
|
|
32
33
|
}
|
|
33
34
|
spinner.start('Installing python from winget');
|
|
34
35
|
await gluegun_1.system.exec('winget install -e --id Python.Python.3 --silent');
|
|
35
36
|
spinner.succeed();
|
|
36
37
|
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.');
|
|
37
|
-
|
|
38
|
+
return (0, errors_1.failure)('Command Prompt restart needed');
|
|
38
39
|
}
|
|
40
|
+
return (0, errors_1.successVoid)();
|
|
39
41
|
}
|
|
40
42
|
async function installDeps(spinner, ESP_DIR) {
|
|
41
43
|
const ESP_TOOL_DIR = gluegun_1.filesystem.resolve(ESP_DIR, ESP_TOOL_VERSION);
|
|
@@ -64,12 +66,10 @@ async function installDeps(spinner, ESP_DIR) {
|
|
|
64
66
|
await (0, windows_1.setEnv)('BASE_DIR', constants_1.INSTALL_DIR);
|
|
65
67
|
await (0, windows_1.addToPath)(CYGWIN_BIN);
|
|
66
68
|
spinner.succeed();
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
// Command Prompt restart needed
|
|
72
|
-
process.exit(1);
|
|
69
|
+
const pythonResult = await installPython(spinner);
|
|
70
|
+
if (!pythonResult.success) {
|
|
71
|
+
// Command Prompt restart needed or Python is required
|
|
72
|
+
return pythonResult;
|
|
73
73
|
}
|
|
74
74
|
if (gluegun_1.system.which('pip') === null) {
|
|
75
75
|
spinner.start('Installing pip through ensurepip');
|
|
@@ -79,5 +79,6 @@ async function installDeps(spinner, ESP_DIR) {
|
|
|
79
79
|
spinner.start('Installing pyserial through pip');
|
|
80
80
|
await gluegun_1.system.exec('python -m pip install pyserial');
|
|
81
81
|
spinner.succeed();
|
|
82
|
+
return (0, errors_1.successVoid)();
|
|
82
83
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYvd2luZG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSxzQ0FrQ0M7QUFFRCxrQ0FtREM7QUF6R0QscUNBQW1EO0FBQ25ELG1DQUFpQztBQUNqQyxrREFBeUI7QUFFekIsK0NBQW9EO0FBQ3BELCtCQUFnQztBQUNoQyx3Q0FBOEM7QUFDOUMsNENBQTBDO0FBQzFDLGdEQUEwRDtBQUcxRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGdCQUFTLEVBQUMsaUJBQVEsQ0FBQyxDQUFBO0FBRTNDLE1BQU0sUUFBUSxHQUNaLHNGQUFzRixDQUFBO0FBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUE7QUFDL0MsTUFBTSxNQUFNLEdBQUcsd0ZBQXdGLENBQUE7QUFFaEcsS0FBSyxVQUFVLGFBQWEsQ0FDakMsT0FBeUM7SUFFekMsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQyx5RkFBeUY7UUFDekYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUNuQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQUssQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUNsQyxlQUFLLENBQUMsSUFBSSxDQUNSLCtEQUErRCxDQUNoRSxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUixrSEFBa0gsQ0FDbkgsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsOEVBQThFLENBQy9FLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGlHQUFpRyxDQUNsRyxDQUFBO1lBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUN0QyxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO1FBQzlDLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUNwRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDakIsZUFBSyxDQUFDLElBQUksQ0FDUiw0SkFBNEosQ0FDN0osQ0FBQTtRQUNELE9BQU8sSUFBQSxnQkFBTyxFQUFDLCtCQUErQixDQUFDLENBQUE7SUFDakQsQ0FBQztJQUVELE9BQU8sSUFBQSxvQkFBVyxHQUFFLENBQUE7QUFDdEIsQ0FBQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQy9CLE9BQXlDLEVBQ3pDLE9BQWU7SUFFZixNQUFNLFlBQVksR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNsRSxNQUFNLFlBQVksR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDcEUsTUFBTSxvQkFBb0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDdkUsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUUvRCxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDckMsSUFBSSxNQUFNLEdBQUcsSUFBQSxzQkFBVSxFQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUMsSUFBSSxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtRQUN2QyxZQUFZLEVBQUUsUUFBUTtLQUN2QixDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM3QixvQkFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUN4RSxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUMvQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFakIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO0lBQzdELE1BQU0sR0FBRyxJQUFBLHNCQUFVLEVBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxRQUFRLEdBQUcsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRTtRQUNqQyxZQUFZLEVBQUUsUUFBUTtLQUN2QixDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM3QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFakIsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBQSxnQkFBTSxFQUFDLFVBQVUsRUFBRSx1QkFBVyxDQUFDLENBQUE7SUFDckMsTUFBTSxJQUFBLG1CQUFTLEVBQUMsVUFBVSxDQUFDLENBQUE7SUFDM0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsc0RBQXNEO1FBQ3RELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtRQUNqRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDeEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDaEQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUVqQixPQUFPLElBQUEsb0JBQVcsR0FBRSxDQUFBO0FBQ3RCLENBQUMifQ==
|
|
@@ -21,6 +21,7 @@ const windows_1 = require("./esp8266/windows");
|
|
|
21
21
|
const windows_2 = require("./windows");
|
|
22
22
|
const devices_1 = require("../prompt/devices");
|
|
23
23
|
const exec_1 = require("../system/exec");
|
|
24
|
+
const errors_1 = require("../system/errors");
|
|
24
25
|
const finishedPromise = (0, util_1.promisify)(stream_1.finished);
|
|
25
26
|
async function default_1() {
|
|
26
27
|
const OS = (0, os_1.type)().toLowerCase();
|
|
@@ -39,10 +40,12 @@ async function default_1() {
|
|
|
39
40
|
// 0. ensure Moddable exists
|
|
40
41
|
if (!(0, moddable_1.moddableExists)()) {
|
|
41
42
|
spinner.fail(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
|
|
42
|
-
|
|
43
|
+
return (0, errors_1.failure)(`Moddable tooling required. Run 'xs-dev setup --device ${devices_1.DEVICE_ALIAS[OS]}' before trying again.`);
|
|
43
44
|
}
|
|
44
45
|
if (isWindows) {
|
|
45
|
-
await (0, windows_2.ensureModdableCommandPrompt)(spinner);
|
|
46
|
+
const result = await (0, windows_2.ensureModdableCommandPrompt)(spinner);
|
|
47
|
+
if ((0, errors_1.isFailure)(result))
|
|
48
|
+
return result;
|
|
46
49
|
}
|
|
47
50
|
// 1. ensure ~/.local/share/esp directory
|
|
48
51
|
spinner.info('Ensuring esp8266 directory');
|
|
@@ -88,18 +91,20 @@ async function default_1() {
|
|
|
88
91
|
}
|
|
89
92
|
// 5. ensure python, pip, and pyserial are installed
|
|
90
93
|
if (OS === 'darwin') {
|
|
91
|
-
await (0, mac_1.installDeps)(spinner);
|
|
94
|
+
const result = await (0, mac_1.installDeps)(spinner);
|
|
95
|
+
if ((0, errors_1.isFailure)(result))
|
|
96
|
+
return result;
|
|
92
97
|
}
|
|
93
98
|
if (OS === 'linux') {
|
|
94
|
-
await (0, linux_1.installDeps)(spinner);
|
|
99
|
+
const result = await (0, linux_1.installDeps)(spinner);
|
|
100
|
+
if ((0, errors_1.isFailure)(result))
|
|
101
|
+
return result;
|
|
95
102
|
}
|
|
96
103
|
if (isWindows) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
104
|
+
const result = await (0, windows_1.installDeps)(spinner, ESP_DIR);
|
|
105
|
+
if ((0, errors_1.isFailure)(result)) {
|
|
101
106
|
gluegun_1.print.error(`Windows dependencies failed to install. Please review the information above.`);
|
|
102
|
-
|
|
107
|
+
return result;
|
|
103
108
|
}
|
|
104
109
|
}
|
|
105
110
|
// 7. create ESP_BASE env export in shell profile
|
|
@@ -115,5 +120,6 @@ async function default_1() {
|
|
|
115
120
|
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 esp8266
|
|
116
121
|
If there is trouble finding the correct port, pass the "--port" flag to the above command with the path to the "/dev.cu.*" that matches your device.
|
|
117
122
|
`);
|
|
123
|
+
return (0, errors_1.successVoid)();
|
|
118
124
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNwODI2Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL2VzcDgyNjYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFzQkEsNEJBc0hDO0FBNUlELHFDQUFtRDtBQUNuRCxrREFBeUI7QUFDekIsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxtQ0FBZ0M7QUFDaEMsK0JBQW1DO0FBQ25DLCtDQUFvRDtBQUNwRCwyQkFBeUM7QUFDekMsMkNBQTREO0FBQzVELHlDQUEyQztBQUMzQyxnRUFBdUM7QUFDdkMsdUNBQTZEO0FBQzdELDJDQUFpRTtBQUNqRSwrQ0FBcUU7QUFDckUsdUNBQXVEO0FBQ3ZELCtDQUFnRDtBQUVoRCx5Q0FBa0Q7QUFDbEQsNkNBQWtFO0FBRWxFLE1BQU0sZUFBZSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxpQkFBUSxDQUFDLENBQUE7QUFFNUIsS0FBSztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO0lBQ2pELE1BQU0sU0FBUyxHQUFHLEVBQUUsS0FBSyxZQUFZLENBQUE7SUFDckMsTUFBTSxTQUFTLEdBQUcsMkZBQTJGLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3BLLE1BQU0sWUFBWSxHQUNoQiw4RUFBOEUsQ0FBQTtJQUNoRixNQUFNLGFBQWEsR0FBRyxtREFBbUQsQ0FBQTtJQUN6RSxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUE7SUFDakMsTUFBTSxPQUFPLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsdUJBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN0RCxNQUFNLFNBQVMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENB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
|
|
@@ -13,6 +13,7 @@ const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
|
13
13
|
const exec_1 = require("../system/exec");
|
|
14
14
|
const packages_1 = require("../system/packages");
|
|
15
15
|
const moddable_1 = require("./moddable");
|
|
16
|
+
const errors_1 = require("../system/errors");
|
|
16
17
|
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
17
18
|
async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
18
19
|
gluegun_1.print.info('Setting up Linux tools!');
|
|
@@ -36,11 +37,15 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
36
37
|
{ name: 'gtk+-3.0', packageName: 'libgtk-3-dev', type: 'library' },
|
|
37
38
|
];
|
|
38
39
|
spinner.start('Checking for missing dependencies...');
|
|
39
|
-
const
|
|
40
|
+
const missingDependenciesResult = await (0, packages_1.findMissingDependencies)(dependencies);
|
|
41
|
+
if ((0, errors_1.isFailure)(missingDependenciesResult))
|
|
42
|
+
return missingDependenciesResult;
|
|
40
43
|
// 1. Install or update the packages required to compile:
|
|
41
44
|
spinner.start('Attempting to install dependencies...');
|
|
42
|
-
if (
|
|
43
|
-
await (0, packages_1.installPackages)(
|
|
45
|
+
if (missingDependenciesResult.data.length !== 0) {
|
|
46
|
+
const result = await (0, packages_1.installPackages)(missingDependenciesResult.data);
|
|
47
|
+
if ((0, errors_1.isFailure)(result))
|
|
48
|
+
return result;
|
|
44
49
|
}
|
|
45
50
|
spinner.succeed();
|
|
46
51
|
// 3. Download the Moddable repository, or use the git command line tool as follows:
|
|
@@ -50,7 +55,11 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
50
55
|
else {
|
|
51
56
|
if (release !== undefined && (branch === undefined || branch === null)) {
|
|
52
57
|
spinner.start('Getting latest Moddable-OpenSource/moddable release');
|
|
53
|
-
const
|
|
58
|
+
const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
|
|
59
|
+
if ((0, errors_1.isFailure)(remoteReleaseResult)) {
|
|
60
|
+
throw new Error(remoteReleaseResult.error);
|
|
61
|
+
}
|
|
62
|
+
const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
|
|
54
63
|
if (remoteRelease.assets.length === 0) {
|
|
55
64
|
spinner.stop();
|
|
56
65
|
gluegun_1.print.warning(`Moddable release ${release} does not have any pre-built assets.`);
|
|
@@ -59,7 +68,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
59
68
|
(await gluegun_1.prompt.confirm('Would you like to continue setting up and build the SDK locally?', true));
|
|
60
69
|
if (!buildTools) {
|
|
61
70
|
gluegun_1.print.info('Please select another release version with pre-built assets: https://github.com/Moddable-OpenSource/moddable/releases');
|
|
62
|
-
|
|
71
|
+
return (0, errors_1.successVoid)();
|
|
63
72
|
}
|
|
64
73
|
spinner.start();
|
|
65
74
|
}
|
|
@@ -110,10 +119,12 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
110
119
|
await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'xsbug', 'manifest.json')}`, { process });
|
|
111
120
|
await gluegun_1.system.exec(`mcconfig -m -p x-lin ${gluegun_1.filesystem.resolve(constants_1.INSTALL_PATH, 'tools', 'mcsim', 'manifest.json')}`, { process });
|
|
112
121
|
}
|
|
113
|
-
await (0, exec_1.execWithSudo)('make install', {
|
|
122
|
+
const installResult = await (0, exec_1.execWithSudo)('make install', {
|
|
114
123
|
cwd: BUILD_DIR,
|
|
115
124
|
stdout: process.stdout,
|
|
116
125
|
});
|
|
126
|
+
if ((0, errors_1.isFailure)(installResult))
|
|
127
|
+
return installResult;
|
|
117
128
|
spinner.succeed();
|
|
118
129
|
if (gluegun_1.system.which('npm') !== null) {
|
|
119
130
|
spinner.start('Installing xsbug-log dependencies');
|
|
@@ -122,5 +133,6 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
122
133
|
}
|
|
123
134
|
// 7. Profit?
|
|
124
135
|
gluegun_1.print.success('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
|
|
136
|
+
return (0, errors_1.successVoid)();
|
|
125
137
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcUJBLDRCQXVNQztBQTVORCw0Q0FBbUI7QUFDbkIsK0JBQWdDO0FBQ2hDLDJCQUEwQjtBQUMxQixxQ0FBMkQ7QUFDM0QsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FBNkM7QUFDN0MsaURBQTZFO0FBRzdFLHlDQUErRDtBQUMvRCw2Q0FBaUU7QUFHakUsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBUyxFQUFDLFVBQUssQ0FBQyxDQUFBO0FBRXRCLEtBQUssb0JBQVcsRUFDN0IsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxHQUNPO0lBQ2xCLGVBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUVyQyxNQUFNLFFBQVEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDakMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FBQTtJQUNELE1BQU0sY0FBYyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUN2Qyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO0lBQ0QsTUFBTSxTQUFTLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2xDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLFdBQVcsRUFDWCxLQUFLLENBQ04sQ0FBQTtJQUVELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN0QixNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBRW5DLG9CQUFVLENBQUMsR0FBRyxDQUFDLHVCQUFXLENBQUMsQ0FBQTtJQUUzQixzREFBc0Q7SUFDdEQsTUFBTSxZQUFZ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
|
|
@@ -11,6 +11,7 @@ const fs_1 = require("fs");
|
|
|
11
11
|
const constants_1 = require("./constants");
|
|
12
12
|
const upsert_1 = __importDefault(require("../patching/upsert"));
|
|
13
13
|
const moddable_1 = require("./moddable");
|
|
14
|
+
const errors_1 = require("../system/errors");
|
|
14
15
|
const chmodPromise = (0, util_1.promisify)(fs_1.chmod);
|
|
15
16
|
async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
16
17
|
gluegun_1.print.info('Setting up the mac tools!');
|
|
@@ -22,8 +23,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
22
23
|
await gluegun_1.system.exec('xcode-select -p');
|
|
23
24
|
}
|
|
24
25
|
catch (error) {
|
|
25
|
-
|
|
26
|
-
process.exit(1);
|
|
26
|
+
return (0, errors_1.failure)('Xcode command line tools are required to build the SDK: https://developer.apple.com/xcode/');
|
|
27
27
|
}
|
|
28
28
|
let buildTools = false;
|
|
29
29
|
const spinner = gluegun_1.print.spin();
|
|
@@ -35,7 +35,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
35
35
|
}
|
|
36
36
|
catch (error) {
|
|
37
37
|
spinner.fail(`Error setting up install directory: ${String(error)}`);
|
|
38
|
-
|
|
38
|
+
return (0, errors_1.failure)(`Error setting up install directory: ${String(error)}`);
|
|
39
39
|
}
|
|
40
40
|
if (gluegun_1.filesystem.exists(constants_1.INSTALL_PATH) !== false) {
|
|
41
41
|
spinner.info('Moddable repo already installed');
|
|
@@ -44,7 +44,11 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
44
44
|
try {
|
|
45
45
|
if (release !== undefined && (branch === undefined || branch === null)) {
|
|
46
46
|
spinner.start('Getting latest Moddable-OpenSource/moddable release');
|
|
47
|
-
const
|
|
47
|
+
const remoteReleaseResult = await (0, moddable_1.fetchRelease)(release);
|
|
48
|
+
if ((0, errors_1.isFailure)(remoteReleaseResult)) {
|
|
49
|
+
throw new Error(remoteReleaseResult.error);
|
|
50
|
+
}
|
|
51
|
+
const remoteRelease = (0, errors_1.unwrap)(remoteReleaseResult);
|
|
48
52
|
if (remoteRelease.assets.length === 0) {
|
|
49
53
|
spinner.stop();
|
|
50
54
|
gluegun_1.print.warning(`Moddable release ${release} does not have any pre-built assets.`);
|
|
@@ -53,7 +57,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
53
57
|
(await gluegun_1.prompt.confirm('Would you like to continue setting up and build the SDK locally?', true));
|
|
54
58
|
if (!buildTools) {
|
|
55
59
|
gluegun_1.print.info('Please select another release version with pre-built assets: https://github.com/Moddable-OpenSource/moddable/releases');
|
|
56
|
-
|
|
60
|
+
return (0, errors_1.successVoid)();
|
|
57
61
|
}
|
|
58
62
|
spinner.start();
|
|
59
63
|
}
|
|
@@ -108,7 +112,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
108
112
|
}
|
|
109
113
|
catch (error) {
|
|
110
114
|
spinner.fail(`Error cloning moddable repo: ${String(error)}`);
|
|
111
|
-
|
|
115
|
+
return (0, errors_1.failure)(`Error cloning moddable repo: ${String(error)}`);
|
|
112
116
|
}
|
|
113
117
|
}
|
|
114
118
|
// 2. configure MODDABLE env variable, add release binaries dir to PATH
|
|
@@ -125,7 +129,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
125
129
|
}
|
|
126
130
|
catch (error) {
|
|
127
131
|
spinner.fail(`Error building mac tooling: ${String(error)}`);
|
|
128
|
-
|
|
132
|
+
return (0, errors_1.failure)(`Error building mac tooling: ${String(error)}`);
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
135
|
// 4. symlink xsbug.app into user applications directory
|
|
@@ -135,7 +139,7 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
135
139
|
catch (error) {
|
|
136
140
|
if (!String(error).includes('exists')) {
|
|
137
141
|
spinner.fail(`Issue creating symlink for xsbug.app: ${String(error)}`);
|
|
138
|
-
|
|
142
|
+
return (0, errors_1.failure)(`Issue creating symlink for xsbug.app: ${String(error)}`);
|
|
139
143
|
}
|
|
140
144
|
else {
|
|
141
145
|
spinner.info('xsbug.app symlink already exists');
|
|
@@ -148,5 +152,6 @@ async function default_1({ sourceRepo, branch, release, interactive, }) {
|
|
|
148
152
|
spinner.succeed();
|
|
149
153
|
}
|
|
150
154
|
spinner.succeed('Moddable SDK successfully set up! Start a new terminal session and run the "helloworld example": xs-dev run --example helloworld');
|
|
155
|
+
return (0, errors_1.successVoid)();
|
|
151
156
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvbWFjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBc0JBLDRCQXNNQztBQTVORCxxQ0FBMkQ7QUFDM0QsNENBQW1CO0FBQ25CLCtCQUFnQztBQUNoQywyQkFBMEI7QUFDMUIsMkNBS29CO0FBQ3BCLGdFQUF1QztBQUN2Qyx5Q0FJbUI7QUFFbkIsNkNBQTBFO0FBRzFFLE1BQU0sWUFBWSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxVQUFLLENBQUMsQ0FBQTtBQUV0QixLQUFLLG9CQUFXLEVBQzdCLFVBQVUsRUFDVixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsR0FDTztJQUNsQixlQUFLLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFFdkMsTUFBTSxRQUFRLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQ2pDLHdCQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUE7SUFDRCxNQUFNLGNBQWMsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FDdkMsd0JBQVksRUFDWixPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxPQUFPLENBQ1IsQ0FBQTtJQUNELE1BQU0sU0FBUyxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUNsQyx3QkFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxDQUNOLENBQUE7SUFFRCx1REFBdUQ7SUFDdkQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFBLGdCQUFPLEVBQ1osNEZBQTRGLENBQzdGLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBRXRCLE1BQU0sT0FBTyxHQUFH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
|
|
@@ -17,6 +17,7 @@ const unzip_stream_1 = require("unzip-stream");
|
|
|
17
17
|
const axios_1 = __importDefault(require("axios"));
|
|
18
18
|
const constants_1 = require("./constants");
|
|
19
19
|
const devices_1 = require("../prompt/devices");
|
|
20
|
+
const errors_1 = require("../system/errors");
|
|
20
21
|
const finishedPromise = (0, util_1.promisify)(stream_1.finished);
|
|
21
22
|
function moddableExists() {
|
|
22
23
|
const OS = (0, os_1.type)().toLowerCase();
|
|
@@ -31,7 +32,10 @@ function isGitRepo(path) {
|
|
|
31
32
|
return gluegun_1.filesystem.exists(gluegun_1.filesystem.resolve(path, '.git')) === 'dir';
|
|
32
33
|
}
|
|
33
34
|
async function getModdableVersion() {
|
|
34
|
-
if (moddableExists()
|
|
35
|
+
if (!moddableExists() || !isGitRepo(process.env.MODDABLE ?? '')) {
|
|
36
|
+
return (0, errors_1.failure)('Moddable not available on this system.');
|
|
37
|
+
}
|
|
38
|
+
return await (0, errors_1.wrapAsync)(async () => {
|
|
35
39
|
const tags = await gluegun_1.system.run('git tag -l --sort=-taggerdate', {
|
|
36
40
|
cwd: process.env.MODDABLE,
|
|
37
41
|
});
|
|
@@ -50,26 +54,27 @@ async function getModdableVersion() {
|
|
|
50
54
|
cwd: process.env.MODDABLE,
|
|
51
55
|
});
|
|
52
56
|
return `branch: ${currentBranch.trim()}, commit: ${latestCommit}`;
|
|
53
|
-
}
|
|
54
|
-
return null;
|
|
57
|
+
});
|
|
55
58
|
}
|
|
56
59
|
async function fetchRelease(release) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
return await (0, errors_1.wrapAsync)(async () => {
|
|
61
|
+
const octokit = new rest_1.Octokit();
|
|
62
|
+
if (release === 'latest') {
|
|
63
|
+
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
|
64
|
+
owner: 'Moddable-OpenSource',
|
|
65
|
+
repo: 'moddable',
|
|
66
|
+
});
|
|
67
|
+
return latestRelease;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const { data: taggedRelease } = await octokit.rest.repos.getReleaseByTag({
|
|
71
|
+
owner: 'Moddable-OpenSource',
|
|
72
|
+
repo: 'moddable',
|
|
73
|
+
tag: release,
|
|
74
|
+
});
|
|
75
|
+
return taggedRelease;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
73
78
|
}
|
|
74
79
|
class MissingReleaseAssetError extends Error {
|
|
75
80
|
constructor(assetName) {
|
|
@@ -80,15 +85,17 @@ exports.MissingReleaseAssetError = MissingReleaseAssetError;
|
|
|
80
85
|
async function downloadReleaseTools({ writePath, assetName, release, }) {
|
|
81
86
|
const moddableTools = release.assets.find(({ name }) => name === assetName);
|
|
82
87
|
if (moddableTools === undefined) {
|
|
83
|
-
|
|
88
|
+
return (0, errors_1.failure)(`Unable to find release asset matching ${assetName}`);
|
|
84
89
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
return await (0, errors_1.wrapAsync)(async () => {
|
|
91
|
+
const zipWriter = (0, unzip_stream_1.Extract)({
|
|
92
|
+
path: writePath,
|
|
93
|
+
});
|
|
94
|
+
const response = await axios_1.default.get(moddableTools.browser_download_url, {
|
|
95
|
+
responseType: 'stream',
|
|
96
|
+
});
|
|
97
|
+
response.data.pipe(zipWriter);
|
|
98
|
+
await finishedPromise(zipWriter);
|
|
90
99
|
});
|
|
91
|
-
response.data.pipe(zipWriter);
|
|
92
|
-
await finishedPromise(zipWriter);
|
|
93
100
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdG9vbGJveC9zZXR1cC9tb2RkYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFjQSx3Q0FjQztBQU1ELGdEQTBCQztBQVFELG9DQXNCQztBQWNELG9EQXFCQztBQTdIRCwyQkFBeUM7QUFDekMsbUNBQWlDO0FBQ2pDLCtCQUFnQztBQUNoQyxxQ0FBNEM7QUFDNUMsd0NBQXFFO0FBQ3JFLCtDQUFvRDtBQUNwRCxrREFBeUI7QUFDekIsMkNBQTBDO0FBRTFDLCtDQUFnRDtBQUNoRCw2Q0FBcUQ7QUFFckQsTUFBTSxlQUFlLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGlCQUFRLENBQUMsQ0FBQTtBQUUzQyxTQUFnQixjQUFjO0lBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBWSxHQUFFLENBQUMsV0FBVyxFQUFZLENBQUE7SUFDakQsTUFBTSxXQUFXLEdBQUcsc0JBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sWUFBWSxHQUFHLG9CQUFVLENBQUMsTUFBTSxDQUNwQyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx3QkFBWSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN6RSxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsb0JBQVUsQ0FBQyxNQUFNLENBQ2xDLG9CQUFVLENBQUMsT0FBTyxDQUFDLHdCQUFZLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQ3ZFLENBQUE7SUFDRCxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUztRQUNsQyxvQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUs7UUFDakQsQ0FBQyxZ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
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.installPython = installPython;
|
|
4
4
|
const gluegun_1 = require("gluegun");
|
|
5
|
+
const errors_1 = require("../../system/errors");
|
|
5
6
|
async function installPython(spinner) {
|
|
6
7
|
if (gluegun_1.system.which('python') === null) {
|
|
7
8
|
// For some reason, system.which does not work with winget. This is a workaround for now.
|
|
@@ -14,13 +15,14 @@ async function installPython(spinner) {
|
|
|
14
15
|
gluegun_1.print.info('Or xs-dev can manage installing Python and other dependencies using the Windows Package Manager Client (winget).');
|
|
15
16
|
gluegun_1.print.info('You can install winget via the App Installer package in the Microsoft Store.');
|
|
16
17
|
gluegun_1.print.info('Please install either Python or winget, then launch a new Command Prompt and re-run this setup.');
|
|
17
|
-
|
|
18
|
+
return (0, errors_1.failure)('Python is required');
|
|
18
19
|
}
|
|
19
20
|
spinner.start('Installing python from winget');
|
|
20
21
|
await gluegun_1.system.exec('winget install -e --id Python.Python.2 --silent');
|
|
21
22
|
spinner.succeed();
|
|
22
23
|
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
|
-
|
|
24
|
+
return (0, errors_1.failure)('Command Prompt restart needed');
|
|
24
25
|
}
|
|
26
|
+
return (0, errors_1.successVoid)();
|
|
25
27
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29sYm94L3NldHVwL25yZjUyL3dpbmRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQ0FrQ0M7QUF0Q0QscUNBQTBEO0FBQzFELGdEQUEwRDtBQUduRCxLQUFLLFVBQVUsYUFBYSxDQUNqQyxPQUF5QztJQUV6QyxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BDLHlGQUF5RjtRQUN6RixJQUFJLENBQUM7WUFDSCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBSyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO1lBQ3RDLGVBQUssQ0FBQyxJQUFJLENBQ1IsK0RBQStELENBQ2hFLENBQUE7WUFDRCxlQUFLLENBQUMsSUFBSSxDQUNSLGtIQUFrSCxDQUNuSCxDQUFBO1lBQ0QsZUFBSyxDQUFDLElBQUksQ0FDUiw4RUFBOEUsQ0FDL0UsQ0FBQTtZQUNELGVBQUssQ0FBQyxJQUFJLENBQ1IsaUdBQWlHLENBQ2xHLENBQUE7WUFDRCxPQUFPLElBQUEsZ0JBQU8sRUFBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUE7UUFDOUMsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNqQixlQUFLLENBQUMsSUFBSSxDQUNSLDRKQUE0SixDQUM3SixDQUFBO1FBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFBLG9CQUFXLEdBQUUsQ0FBQTtBQUN0QixDQUFDIn0=
|