VulpesOS/gaia/apps/calendar/build/build.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

60 lines
1.6 KiB
JavaScript
Executable file

'use strict';
/* jshint node: true */
var utils = require('utils');
function createPresetsFile(options) {
var presetsFile = utils.getFile(options.APP_DIR, 'js/common', 'presets.js');
var config = JSON.parse(
utils.getFileContent(
utils.getFile(options.APP_DIR, 'build', 'config.json')
)
);
var presets = utils.getDistributionFileContent(
'calendar',
config,
options.GAIA_DISTRIBUTION_DIR
);
utils.writeContent(presetsFile, 'define(' + presets + ');');
}
exports.execute = function(options) {
var appName = utils.basename(options.APP_DIR);
var config = utils.getFile(options.APP_DIR, 'build', 'calendar.build.js');
var rjsPath = utils.joinPath(options.GAIA_DIR, 'build', 'r.js');
var requirejs;
if (utils.isNode()) {
requirejs = require(rjsPath);
} else {
var sandbox = utils.createSandbox();
sandbox.arguments = [];
sandbox.requirejsAsLib = true;
sandbox.print = function() {
utils.log(appName, Array.prototype.join.call(arguments, ' '));
};
utils.runScriptInSandbox(rjsPath, sandbox);
requirejs = sandbox.requirejs;
}
createPresetsFile(options);
// logLevel set 4 for silent, set 0 for all
var log = 'logLevel=' + (options.VERBOSE === '1' ? '0' : '4');
var optimize = 'optimize=none';
var build = new Promise(function(resolve, reject) {
requirejs.optimize([config.path, optimize, log], resolve, reject);
});
return build
.then(function() {
utils.log(appName, 'require.js optimize done');
}).catch(function(err) {
utils.log(appName, 'require.js optimize failed');
utils.log(appName, err);
});
};