xs-dev 0.29.0 → 0.30.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.
@@ -9,18 +9,24 @@ async function installDeps(spinner) {
9
9
  }
10
10
  catch (error) {
11
11
  if (error instanceof Error) {
12
- gluegun_1.print.info(`${error.message} arm-none-eabi-gcc, libusb, pkg-config`);
12
+ gluegun_1.print.info(`${error.message} gcc-arm-embedded, libusb, pkg-config`);
13
13
  process.exit(1);
14
14
  }
15
15
  }
16
- spinner.start('Tapping ArmMbed formulae and installing arm-embed-gcc');
17
- await gluegun_1.system.exec('brew tap ArmMbed/homebrew-formulae', {
16
+ if (gluegun_1.system.which('arm-none-eabi-gcc') !== null) {
17
+ spinner.start('Removing outdated arm gcc dependency');
18
+ await gluegun_1.system.exec('brew untap ArmMbed/homebrew-formulae');
19
+ await gluegun_1.system.exec('brew uninstall arm-none-eabi-gcc');
20
+ spinner.succeed();
21
+ }
22
+ spinner.start('Installing pico tools dependencies');
23
+ await gluegun_1.system.exec(`brew install libusb pkg-config`, {
18
24
  shell: process.env.SHELL,
19
25
  });
20
- await gluegun_1.system.exec(`brew install arm-none-eabi-gcc libusb pkg-config`, {
26
+ await gluegun_1.system.exec(`brew install --cask gcc-arm-embedded`, {
21
27
  shell: process.env.SHELL,
22
28
  });
23
29
  spinner.succeed();
24
30
  }
25
31
  exports.installDeps = installDeps;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvcGljby9tYWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFEO0FBQ3JELDBDQUE0QztBQUVyQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixPQUF5QztJQUV6QyxJQUFJO1FBQ0YsTUFBTSxJQUFBLHlCQUFjLEdBQUUsQ0FBQTtLQUN2QjtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sd0NBQXdDLENBQUMsQ0FBQTtZQUNwRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO0tBQ0Y7SUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7SUFDdEUsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRTtRQUN0RCxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLO0tBQ3pCLENBQUMsQ0FBQTtJQUNGLE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsa0RBQWtELEVBQUU7UUFDcEUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSztLQUN6QixDQUFDLENBQUE7SUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDbkIsQ0FBQztBQXBCRCxrQ0FvQkMifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvcGljby9tYWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXFEO0FBQ3JELDBDQUE0QztBQUVyQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixPQUF5QztJQUV6QyxJQUFJO1FBQ0YsTUFBTSxJQUFBLHlCQUFjLEdBQUUsQ0FBQTtLQUN2QjtJQUFDLE9BQU8sS0FBYyxFQUFFO1FBQ3ZCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtZQUMxQixlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sdUNBQXVDLENBQUMsQ0FBQTtZQUNuRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2hCO0tBQ0Y7SUFFRCxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssSUFBSSxFQUFFO1FBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtRQUNyRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7UUFDekQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ3JELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtLQUNsQjtJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtJQUNuRCxNQUFNLGdCQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1FBQ2xELEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUs7S0FDekIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRTtRQUN4RCxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLO0tBQ3pCLENBQUMsQ0FBQTtJQUNGLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUNuQixDQUFDO0FBM0JELGtDQTJCQyJ9
@@ -1,8 +1,133 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const gluegun_1 = require("gluegun");
7
+ const os_1 = require("os");
8
+ const constants_1 = require("../setup/constants");
9
+ const upsert_1 = __importDefault(require("../patching/upsert"));
10
+ const mac_1 = require("../setup/pico/mac");
11
+ const linux_1 = require("../setup/pico/linux");
12
+ const moddable_1 = require("../setup/moddable");
13
+ const exec_1 = require("../system/exec");
4
14
  async function default_1() {
5
- gluegun_1.print.warning('Pico update is not currently supported');
15
+ var _a;
16
+ const OS = (0, os_1.type)().toLowerCase();
17
+ const PICO_BRANCH = '1.5.0';
18
+ const PICO_EXTRAS_REPO = 'https://github.com/raspberrypi/pico-extras';
19
+ const PICO_ROOT = (_a = process.env.PICO_ROOT) !== null && _a !== void 0 ? _a : gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'pico');
20
+ const PICO_SDK_DIR = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-sdk');
21
+ const PICO_EXTRAS_DIR = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-extras');
22
+ const PICO_EXAMPLES_PATH = gluegun_1.filesystem.resolve(PICO_ROOT, 'pico-examples');
23
+ const PICOTOOL_PATH = gluegun_1.filesystem.resolve(PICO_ROOT, 'picotool');
24
+ const PICOTOOL_BUILD_DIR = gluegun_1.filesystem.resolve(PICOTOOL_PATH, 'build');
25
+ const PICO_SDK_BUILD_DIR = gluegun_1.filesystem.resolve(PICO_SDK_DIR, 'build');
26
+ await (0, exec_1.sourceEnvironment)();
27
+ const spinner = gluegun_1.print.spin();
28
+ spinner.start('Starting pico tooling update');
29
+ // 0. ensure pico instal directory and Moddable exists
30
+ if (!(0, moddable_1.moddableExists)()) {
31
+ spinner.fail('Moddable platform tooling required. Run `xs-dev setup` before trying again.');
32
+ process.exit(1);
33
+ }
34
+ spinner.info('Ensuring pico directory');
35
+ if (gluegun_1.filesystem.exists(PICO_ROOT) === false ||
36
+ gluegun_1.filesystem.exists(PICO_SDK_DIR) === false ||
37
+ gluegun_1.filesystem.exists(PICO_EXTRAS_DIR) === false ||
38
+ gluegun_1.filesystem.exists(PICO_EXAMPLES_PATH) === false ||
39
+ gluegun_1.filesystem.exists(PICOTOOL_PATH) === false) {
40
+ spinner.fail('Pico tooling required. Run `xs-dev setup --device pico` before trying again.');
41
+ process.exit(1);
42
+ }
43
+ else {
44
+ spinner.succeed('Found existing pico tooling!');
45
+ }
46
+ // 1. Install required components
47
+ if (OS === 'darwin') {
48
+ if (gluegun_1.system.which('cmake') === null) {
49
+ spinner.start('Cmake required, installing with Homebrew');
50
+ await gluegun_1.system.exec('brew install cmake');
51
+ spinner.succeed();
52
+ }
53
+ await (0, mac_1.installDeps)(spinner);
54
+ const brewPrefix = await gluegun_1.system.run('brew --prefix');
55
+ process.env.PICO_GCC_ROOT = brewPrefix;
56
+ await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PICO_GCC_ROOT=${brewPrefix}`);
57
+ }
58
+ if (OS === 'linux') {
59
+ spinner.start('Installing build dependencies with apt');
60
+ await (0, linux_1.installDeps)(spinner);
61
+ process.env.PICO_GCC_ROOT = '/usr';
62
+ await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export PICO_GCC_ROOT=/usr`);
63
+ }
64
+ spinner.succeed();
65
+ // 2. Update the pico sdk, extras, examples, and picotool:
66
+ if (gluegun_1.filesystem.exists(PICO_SDK_DIR) === 'dir') {
67
+ spinner.start('Updating pico-sdk repo');
68
+ await gluegun_1.system.spawn(`git fetch --all --tags`, { cwd: PICO_SDK_DIR });
69
+ await gluegun_1.system.spawn(`git checkout ${PICO_BRANCH}`, { cwd: PICO_SDK_DIR });
70
+ await gluegun_1.system.spawn(`git submodule update --init --recursive`, {
71
+ cwd: PICO_SDK_DIR,
72
+ });
73
+ spinner.succeed();
74
+ }
75
+ if (gluegun_1.filesystem.exists(PICO_EXTRAS_DIR) === 'dir') {
76
+ spinner.start('Updating pico-extras repo');
77
+ await gluegun_1.system.exec(`git clone --depth 1 --single-branch -b sdk-${PICO_BRANCH} ${PICO_EXTRAS_REPO} ${PICO_EXTRAS_DIR}`, { stdout: process.stdout });
78
+ await gluegun_1.system.spawn(`git fetch --all --tags`, { cwd: PICO_EXTRAS_DIR });
79
+ await gluegun_1.system.spawn(`git checkout sdk-${PICO_BRANCH}`, {
80
+ cwd: PICO_EXTRAS_DIR,
81
+ });
82
+ spinner.succeed();
83
+ }
84
+ if (gluegun_1.filesystem.exists(PICO_EXAMPLES_PATH) === 'dir') {
85
+ spinner.start('Updating pico-examples repo');
86
+ await gluegun_1.system.spawn(`git fetch --all --tags`, { cwd: PICO_EXAMPLES_PATH });
87
+ await gluegun_1.system.spawn(`git checkout sdk-${PICO_BRANCH}`, {
88
+ cwd: PICO_EXAMPLES_PATH,
89
+ });
90
+ spinner.succeed();
91
+ }
92
+ if (gluegun_1.filesystem.exists(PICOTOOL_PATH) === 'dir') {
93
+ spinner.start('Updating picotool repo');
94
+ await gluegun_1.system.spawn(`git fetch --all --tags`, { cwd: PICOTOOL_PATH });
95
+ await gluegun_1.system.spawn(`git checkout master`, { cwd: PICOTOOL_PATH });
96
+ spinner.succeed();
97
+ }
98
+ // 4. Build some pico tools:
99
+ spinner.start('Build some pico tools');
100
+ gluegun_1.filesystem.dir(PICO_SDK_BUILD_DIR);
101
+ await gluegun_1.system.exec('cmake ..', {
102
+ shell: process.env.SHELL,
103
+ stdout: process.stdout,
104
+ cwd: PICO_SDK_BUILD_DIR,
105
+ });
106
+ await gluegun_1.system.exec('make', {
107
+ shell: process.env.SHELL,
108
+ stdout: process.stdout,
109
+ cwd: PICO_SDK_BUILD_DIR,
110
+ });
111
+ spinner.succeed();
112
+ // 5. Build _the_ picotool
113
+ spinner.start('Build the picotool CLI');
114
+ gluegun_1.filesystem.dir(PICOTOOL_BUILD_DIR);
115
+ await gluegun_1.system.exec('cmake ..', {
116
+ shell: process.env.SHELL,
117
+ stdout: process.stdout,
118
+ cwd: PICOTOOL_BUILD_DIR,
119
+ });
120
+ await gluegun_1.system.exec('make', {
121
+ shell: process.env.SHELL,
122
+ stdout: process.stdout,
123
+ cwd: PICOTOOL_BUILD_DIR,
124
+ });
125
+ spinner.succeed();
126
+ spinner.succeed(`
127
+ Successfully updated pico platform support for Moddable!
128
+ Test out the update by starting a new terminal session and putting the device into programming mode by holding the BOOTSEL button when powering on the Pico
129
+ Then run: xs-dev run --example helloworld --device pico
130
+ `);
6
131
  }
7
132
  exports.default = default_1;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3VwZGF0ZS9waWNvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscUNBQStCO0FBRWhCLEtBQUs7SUFDbEIsZUFBSyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFGRCw0QkFFQyJ9
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29sYm94L3VwZGF0ZS9waWNvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQW1EO0FBQ25ELDJCQUF5QztBQUN6QyxrREFBbUU7QUFDbkUsZ0VBQXVDO0FBQ3ZDLDJDQUFpRTtBQUNqRSwrQ0FBcUU7QUFDckUsZ0RBQWtEO0FBQ2xELHlDQUFrRDtBQUVuQyxLQUFLOztJQUNsQixNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQTtJQUMzQixNQUFNLGdCQUFnQixHQUFHLDRDQUE0QyxDQUFBO0lBQ3JFLE1BQU0sU0FBUyxHQUNiLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLG1DQUFJLG9CQUFVLENBQUMsT0FBTyxDQUFDLHVCQUFXLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDbEUsTUFBTSxZQUFZLEdBQUcsb0JBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBQzlELE1BQU0sZUFBZSxHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUNwRSxNQUFNLGtCQUFrQixHQUFHLG9CQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUN6RSxNQUFNLGFBQWEsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDL0QsTUFBTSxrQkFBa0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDckUsTUFBTSxrQkFBa0IsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFcEUsTUFBTSxJQUFBLHdCQUFpQixHQUFF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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "0.29.0",
3
+ "version": "0.30.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": {