xs-dev 0.4.0 → 0.5.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.
@@ -1,12 +1,16 @@
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 os_1 = require("os");
7
+ const fontbm_1 = __importDefault(require("../toolbox/setup/fontbm"));
4
8
  const command = {
5
9
  name: 'setup',
6
10
  description: 'Download and build Moddable tooling for various platform targets',
7
11
  run: async ({ parameters, setup, prompt, print }) => {
8
12
  const currentPlatform = (0, os_1.type)().toLowerCase();
9
- const { device, listDevices = false } = parameters.options;
13
+ const { device, listDevices = false, tool, } = parameters.options;
10
14
  let target = device !== null && device !== void 0 ? device : currentPlatform;
11
15
  if (device === undefined && listDevices) {
12
16
  const choices = ['esp8266', 'esp32', 'wasm', currentPlatform];
@@ -26,8 +30,16 @@ const command = {
26
30
  process.exit(0);
27
31
  }
28
32
  }
33
+ if (tool !== undefined) {
34
+ if (tool !== 'fontbm') {
35
+ print.warning(`Unknown tool ${tool}`);
36
+ process.exit(0);
37
+ }
38
+ await (0, fontbm_1.default)();
39
+ return;
40
+ }
29
41
  await setup[target]();
30
42
  },
31
43
  };
32
44
  exports.default = command;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwyQkFBeUM7QUFRekMsTUFBTSxPQUFPLEdBQWlDO0lBQzVDLElBQUksRUFBRSxPQUFPO0lBQ2IsV0FBVyxFQUNULGtFQUFrRTtJQUNwRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUNsRCxNQUFNLGVBQWUsR0FBVyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBWSxDQUFBO1FBQ3RFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxHQUFpQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ3hFLElBQUksTUFBTSxHQUFXLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLGVBQWUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUE7WUFDN0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2xEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxPQUFPO2lCQUNSO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3pELE1BQU0sR0FBRyxjQUF3QixDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQkFBeUM7QUFFekMscUVBQWlEO0FBUWpELE1BQU0sT0FBTyxHQUFpQztJQUM1QyxJQUFJLEVBQUUsT0FBTztJQUNiLFdBQVcsRUFDVCxrRUFBa0U7SUFDcEUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDbEQsTUFBTSxlQUFlLEdBQVcsSUFBQSxTQUFZLEdBQUUsQ0FBQyxXQUFXLEVBQVksQ0FBQTtRQUN0RSxNQUFNLEVBQ0osTUFBTSxFQUNOLFdBQVcsR0FBRyxLQUFLLEVBQ25CLElBQUksR0FDTCxHQUFpQixVQUFVLENBQUMsT0FBTyxDQUFBO1FBQ3BDLElBQUksTUFBTSxHQUFXLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLGVBQWUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUE7WUFDN0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2xEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsd0NBQXdDO29CQUNqRCxPQUFPO2lCQUNSO2FBQ0YsQ0FBQyxDQUFBO1lBRUYsSUFBSSxjQUFjLEtBQUssRUFBRSxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3pELE1BQU0sR0FBRyxjQUF3QixDQUFBO2FBQ2xDO2lCQUFNO2dCQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtTQUNGO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoQjtZQUNELE1BQU0sSUFBQSxnQkFBVyxHQUFFLENBQUE7WUFDbkIsT0FBTTtTQUNQO1FBRUQsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0NBQ0YsQ0FBQTtBQUVELGtCQUFlLE9BQU8sQ0FBQSJ9
@@ -0,0 +1,59 @@
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 upsert_1 = __importDefault(require("../patching/upsert"));
9
+ const os_1 = require("os");
10
+ const process_1 = require("process");
11
+ async function default_1() {
12
+ const spinner = gluegun_1.print.spin();
13
+ spinner.start('Beginning setup...');
14
+ const OS = (0, os_1.type)().toLowerCase();
15
+ if (OS !== 'darwin') {
16
+ gluegun_1.print.error(`OS "${OS}" not supported`);
17
+ (0, process_1.exit)(1);
18
+ }
19
+ const FONTBM_REPO = 'https://github.com/vladimirgamalyan/fontbm.git';
20
+ const FONTBM_DIR = gluegun_1.filesystem.resolve(constants_1.INSTALL_DIR, 'fontbm');
21
+ const FONTBM_TAG = 'v0.5.0';
22
+ // 1. install cmake
23
+ if (gluegun_1.system.which('cmake') === null) {
24
+ spinner.start('Cmake required, installing with Homebrew');
25
+ await gluegun_1.system.exec('brew install cmake');
26
+ spinner.succeed();
27
+ }
28
+ // 2. install freetype
29
+ if (gluegun_1.system.which('freetype-config') === null) {
30
+ spinner.start('FreeType required, installing with Homebrew');
31
+ await gluegun_1.system.exec('brew install freetype');
32
+ spinner.succeed();
33
+ }
34
+ // 3. clone fontbm
35
+ if (gluegun_1.filesystem.exists(FONTBM_DIR) === false) {
36
+ spinner.start(`Cloning fontbm repo (tag "${FONTBM_TAG}")`);
37
+ await gluegun_1.system.spawn(`git clone ${FONTBM_REPO} --branch ${FONTBM_TAG} ${FONTBM_DIR}`);
38
+ spinner.succeed();
39
+ }
40
+ // 4. build fontbm
41
+ spinner.start('Building fontbm');
42
+ await gluegun_1.system.exec('cmake .', {
43
+ cwd: FONTBM_DIR,
44
+ stdout: process.stdout,
45
+ });
46
+ await gluegun_1.system.exec('make', {
47
+ cwd: FONTBM_DIR,
48
+ stdout: process.stdout,
49
+ });
50
+ spinner.succeed();
51
+ // 5. set FONTBM environment variable
52
+ if (process.env.FONTBM === undefined) {
53
+ process.env.FONTBM = `${FONTBM_DIR}/fontbm`;
54
+ await (0, upsert_1.default)(constants_1.EXPORTS_FILE_PATH, `export FONTBM=${process.env.FONTBM}`);
55
+ }
56
+ spinner.succeed('fontbm successfully set up!');
57
+ }
58
+ exports.default = default_1;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udGJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2xib3gvc2V0dXAvZm9udGJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQW1EO0FBQ25ELDJDQUE0RDtBQUM1RCxnRUFBdUM7QUFDdkMsMkJBQXlDO0FBQ3pDLHFDQUE4QjtBQUVmLEtBQUs7SUFDbEIsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUVuQyxNQUFNLEVBQUUsR0FBRyxJQUFBLFNBQVksR0FBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ3ZDLElBQUksRUFBRSxLQUFLLFFBQVEsRUFBRTtRQUNuQixlQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3ZDLElBQUEsY0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ1I7SUFFRCxNQUFNLFdBQVcsR0FBRyxnREFBZ0QsQ0FBQTtJQUNwRSxNQUFNLFVBQVUsR0FBRyxvQkFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBVyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQTtJQUUzQixtQkFBbUI7SUFDbkIsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO1FBQ3pELE1BQU0sZ0JBQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUN2QyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7S0FDbEI7SUFFRCxzQkFBc0I7SUFDdEIsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFDNUQsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtLQUNsQjtJQUVELGtCQUFrQjtJQUNsQixJQUFJLG9CQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixVQUFVLElBQUksQ0FBQyxDQUFBO1FBQzFELE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLGFBQWEsV0FBVyxhQUFhLFVBQVUsSUFBSSxVQUFVLEVBQUUsQ0FDaEUsQ0FBQTtRQUNELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtLQUNsQjtJQUVELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDaEMsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDM0IsR0FBRyxFQUFFLFVBQVU7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxnQkFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDeEIsR0FBRyxFQUFFLFVBQVU7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWpCLHFDQUFxQztJQUNyQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtRQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsU0FBUyxDQUFBO1FBQzNDLE1BQU0sSUFBQSxnQkFBTSxFQUFDLDZCQUFpQixFQUFFLGlCQUFpQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7S0FDdkU7SUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUE7QUFDaEQsQ0FBQztBQXhERCw0QkF3REMifQ==
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xs-dev",
3
- "version": "0.4.0",
3
+ "version": "0.5.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": {