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.
package/build/commands/setup.js
CHANGED
|
@@ -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,
|
|
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>;
|