electron-forge
Version:
A complete tool for building modern Electron applications
256 lines (190 loc) • 15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _bluebird = require('bluebird');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _glob = require('glob');
var _glob2 = _interopRequireDefault(_glob);
var _resolvePackage = require('resolve-package');
var _resolvePackage2 = _interopRequireDefault(_resolvePackage);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _initStarterFiles = require('./init-starter-files');
var _oraHandler = require('../util/ora-handler');
var _oraHandler2 = _interopRequireDefault(_oraHandler);
var _installDependencies = require('../util/install-dependencies');
var _installDependencies2 = _interopRequireDefault(_installDependencies);
var _ora = require('../util/ora');
var _ora2 = _interopRequireDefault(_ora);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var d = (0, _debug2.default)('electron-forge:init:custom');
exports.default = function () {
var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee4(dir, template, lintStyle) {
var templateModulePath, templateModule;
return _regenerator2.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
templateModulePath = void 0;
_context4.next = 3;
return (0, _oraHandler2.default)('Locating custom template: "' + template + '"', (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return (0, _resolvePackage2.default)('electron-forge-template-' + template);
case 3:
templateModulePath = _context.sent;
d('using global template');
_context.next = 17;
break;
case 7:
_context.prev = 7;
_context.t0 = _context['catch'](0);
_context.prev = 9;
templateModulePath = require.resolve('electron-forge-template-' + template);
d('using local template');
_context.next = 17;
break;
case 14:
_context.prev = 14;
_context.t1 = _context['catch'](9);
throw 'Failed to locate custom template: "' + template + '"\n\nTry `npm install -g electron-forge-template-' + template + '`';
case 17:
case 'end':
return _context.stop();
}
}
}, _callee, undefined, [[0, 7], [9, 14]]);
})));
case 3:
templateModule = require(templateModulePath);
templateModule = templateModule.default || templateModule;
_context4.next = 7;
return (0, _oraHandler2.default)('Installing Template Dependencies', (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2() {
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
d('installing dependencies');
_context2.next = 3;
return (0, _installDependencies2.default)(dir, templateModule.dependencies || []);
case 3:
d('installing devDependencies');
_context2.next = 6;
return (0, _installDependencies2.default)(dir, templateModule.devDependencies || [], true);
case 6:
case 'end':
return _context2.stop();
}
}
}, _callee2, undefined);
})));
case 7:
_context4.next = 9;
return (0, _oraHandler2.default)('Copying Template Files', (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee3() {
var templateDirectory, tmplPath, files, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, file;
return _regenerator2.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
templateDirectory = templateModule.templateDirectory;
if (!templateDirectory) {
_context3.next = 35;
break;
}
tmplPath = templateDirectory;
if (_path2.default.isAbsolute(templateDirectory)) {
_context3.next = 5;
break;
}
throw 'Custom template path needs to be absolute, this is an issue with "electron-forge-template-' + template + '"';
case 5:
files = _glob2.default.sync(_path2.default.resolve(tmplPath, '**/*'));
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context3.prev = 9;
_iterator = (0, _getIterator3.default)(files);
case 11:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context3.next = 21;
break;
}
file = _step.value;
_context3.next = 15;
return _fsExtra2.default.stat(file);
case 15:
if (!_context3.sent.isFile()) {
_context3.next = 18;
break;
}
_context3.next = 18;
return (0, _initStarterFiles.copy)(file, _path2.default.resolve(dir, _path2.default.relative(tmplPath, file).replace(/^_/, '.')));
case 18:
_iteratorNormalCompletion = true;
_context3.next = 11;
break;
case 21:
_context3.next = 27;
break;
case 23:
_context3.prev = 23;
_context3.t0 = _context3['catch'](9);
_didIteratorError = true;
_iteratorError = _context3.t0;
case 27:
_context3.prev = 27;
_context3.prev = 28;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 30:
_context3.prev = 30;
if (!_didIteratorError) {
_context3.next = 33;
break;
}
throw _iteratorError;
case 33:
return _context3.finish(30);
case 34:
return _context3.finish(27);
case 35:
case 'end':
return _context3.stop();
}
}
}, _callee3, undefined, [[9, 23, 27, 35], [28,, 30, 34]]);
})));
case 9:
if (!(typeof templateModule.postCopy === 'function')) {
_context4.next = 12;
break;
}
_context4.next = 12;
return _promise2.default.resolve(templateModule.postCopy(dir, _ora2.default, lintStyle));
case 12:
case 'end':
return _context4.stop();
}
}
}, _callee4, undefined);
}));
return function (_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQvaW5pdC1jdXN0b20uanMiXSwibmFtZXMiOlsiZCIsImRpciIsInRlbXBsYXRlIiwibGludFN0eWxlIiwidGVtcGxhdGVNb2R1bGVQYXRoIiwicmVxdWlyZSIsInJlc29sdmUiLCJ0ZW1wbGF0ZU1vZHVsZSIsImRlZmF1bHQiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJ0ZW1wbGF0ZURpcmVjdG9yeSIsInRtcGxQYXRoIiwiaXNBYnNvbHV0ZSIsImZpbGVzIiwic3luYyIsImZpbGUiLCJzdGF0IiwiaXNGaWxlIiwicmVsYXRpdmUiLCJyZXBsYWNlIiwicG9zdENvcHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsSUFBSSxxQkFBTSw0QkFBTixDQUFWOzs7aUVBRWUsa0JBQU9DLEdBQVAsRUFBWUMsUUFBWixFQUFzQkMsU0FBdEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1RDLDhCQURTO0FBQUE7QUFBQSxtQkFFUCwwREFBdUNGLFFBQXZDLDREQUFvRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUUzQiwyREFBMENBLFFBQTFDLENBRjJCOztBQUFBO0FBRXRERSx3Q0FGc0Q7O0FBR3RESix3QkFBRSx1QkFBRjtBQUhzRDtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU1wREksMkNBQXFCQyxRQUFRQyxPQUFSLDhCQUEyQ0osUUFBM0MsQ0FBckI7QUFDQUYsd0JBQUUsc0JBQUY7QUFQb0Q7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQSxvRUFTUkUsUUFUUSx5REFTcURBLFFBVHJEOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBQXBELEdBRk87O0FBQUE7QUFnQlRLLDBCQWhCUyxHQWdCUUYsUUFBUUQsa0JBQVIsQ0FoQlI7OztBQWtCYkcsNkJBQWlCQSxlQUFlQyxPQUFmLElBQTBCRCxjQUEzQzs7QUFsQmE7QUFBQSxtQkFvQlAsMEJBQVMsa0NBQVQsc0RBQTZDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDakRQLHdCQUFFLHlCQUFGO0FBRGlEO0FBQUEsNkJBRTNDLG1DQUFlQyxHQUFmLEVBQW9CTSxlQUFlRSxZQUFmLElBQStCLEVBQW5ELENBRjJDOztBQUFBO0FBR2pEVCx3QkFBRSw0QkFBRjtBQUhpRDtBQUFBLDZCQUkzQyxtQ0FBZUMsR0FBZixFQUFvQk0sZUFBZUcsZUFBZixJQUFrQyxFQUF0RCxFQUEwRCxJQUExRCxDQUoyQzs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQUE3QyxHQXBCTzs7QUFBQTtBQUFBO0FBQUEsbUJBMkJQLDBCQUFTLHdCQUFULHNEQUFtQztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ2pDQyx1Q0FEaUMsR0FDYkosZUFBZUksaUJBREY7O0FBQUEsMkJBRW5DQSxpQkFGbUM7QUFBQTtBQUFBO0FBQUE7O0FBRy9CQyw4QkFIK0IsR0FHcEJELGlCQUhvQjs7QUFBQSwwQkFJaEMsZUFBS0UsVUFBTCxDQUFnQkYsaUJBQWhCLENBSmdDO0FBQUE7QUFBQTtBQUFBOztBQUFBLDJIQUtnRVQsUUFMaEU7O0FBQUE7QUFRL0JZLDJCQVIrQixHQVF2QixlQUFLQyxJQUFMLENBQVUsZUFBS1QsT0FBTCxDQUFhTSxRQUFiLEVBQXVCLE1BQXZCLENBQVYsQ0FSdUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZEQVVsQkUsS0FWa0I7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFVMUJFLDBCQVYwQjtBQUFBO0FBQUEsNkJBV3hCLGtCQUFHQyxJQUFILENBQVFELElBQVIsQ0FYd0I7O0FBQUE7QUFBQSwwQ0FXVEUsTUFYUztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLDZCQVkzQiw0QkFBS0YsSUFBTCxFQUFXLGVBQUtWLE9BQUwsQ0FBYUwsR0FBYixFQUFrQixlQUFLa0IsUUFBTCxDQUFjUCxRQUFkLEVBQXdCSSxJQUF4QixFQUE4QkksT0FBOUIsQ0FBc0MsSUFBdEMsRUFBNEMsR0FBNUMsQ0FBbEIsQ0FBWCxDQVoyQjs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGFBQW5DLEdBM0JPOztBQUFBO0FBQUEsa0JBNkNULE9BQU9iLGVBQWVjLFFBQXRCLEtBQW1DLFVBN0MxQjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLG1CQThDTCxrQkFBUWYsT0FBUixDQUFnQkMsZUFBZWMsUUFBZixDQUF3QnBCLEdBQXhCLGlCQUFrQ0UsU0FBbEMsQ0FBaEIsQ0E5Q0s7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsImZpbGUiOiJpbml0L2luaXQtY3VzdG9tLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgZ2xvYiBmcm9tICdnbG9iJztcbmltcG9ydCByZXNvbHZlUGFja2FnZSBmcm9tICdyZXNvbHZlLXBhY2thZ2UnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGNvcHkgfSBmcm9tICcuL2luaXQtc3RhcnRlci1maWxlcyc7XG5pbXBvcnQgYXN5bmNPcmEgZnJvbSAnLi4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgaW5zdGFsbERlcExpc3QgZnJvbSAnLi4vdXRpbC9pbnN0YWxsLWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgb3JhIGZyb20gJy4uL3V0aWwvb3JhJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTppbml0OmN1c3RvbScpO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoZGlyLCB0ZW1wbGF0ZSwgbGludFN0eWxlKSA9PiB7XG4gIGxldCB0ZW1wbGF0ZU1vZHVsZVBhdGg7XG4gIGF3YWl0IGFzeW5jT3JhKGBMb2NhdGluZyBjdXN0b20gdGVtcGxhdGU6IFwiJHt0ZW1wbGF0ZX1cImAsIGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgdGVtcGxhdGVNb2R1bGVQYXRoID0gYXdhaXQgcmVzb2x2ZVBhY2thZ2UoYGVsZWN0cm9uLWZvcmdlLXRlbXBsYXRlLSR7dGVtcGxhdGV9YCk7XG4gICAgICBkKCd1c2luZyBnbG9iYWwgdGVtcGxhdGUnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlbXBsYXRlTW9kdWxlUGF0aCA9IHJlcXVpcmUucmVzb2x2ZShgZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1gKTtcbiAgICAgICAgZCgndXNpbmcgbG9jYWwgdGVtcGxhdGUnKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgdGhyb3cgYEZhaWxlZCB0byBsb2NhdGUgY3VzdG9tIHRlbXBsYXRlOiBcIiR7dGVtcGxhdGV9XCJcXG5cXG5UcnkgXFxgbnBtIGluc3RhbGwgLWcgZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1cXGBgO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgbGV0IHRlbXBsYXRlTW9kdWxlID0gcmVxdWlyZSh0ZW1wbGF0ZU1vZHVsZVBhdGgpO1xuXG4gIHRlbXBsYXRlTW9kdWxlID0gdGVtcGxhdGVNb2R1bGUuZGVmYXVsdCB8fCB0ZW1wbGF0ZU1vZHVsZTtcblxuICBhd2FpdCBhc3luY09yYSgnSW5zdGFsbGluZyBUZW1wbGF0ZSBEZXBlbmRlbmNpZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZCgnaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMnKTtcbiAgICBhd2FpdCBpbnN0YWxsRGVwTGlzdChkaXIsIHRlbXBsYXRlTW9kdWxlLmRlcGVuZGVuY2llcyB8fCBbXSk7XG4gICAgZCgnaW5zdGFsbGluZyBkZXZEZXBlbmRlbmNpZXMnKTtcbiAgICBhd2FpdCBpbnN0YWxsRGVwTGlzdChkaXIsIHRlbXBsYXRlTW9kdWxlLmRldkRlcGVuZGVuY2llcyB8fCBbXSwgdHJ1ZSk7XG4gIH0pO1xuXG4gIGF3YWl0IGFzeW5jT3JhKCdDb3B5aW5nIFRlbXBsYXRlIEZpbGVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlRGlyZWN0b3J5ID0gdGVtcGxhdGVNb2R1bGUudGVtcGxhdGVEaXJlY3Rvcnk7XG4gICAgaWYgKHRlbXBsYXRlRGlyZWN0b3J5KSB7XG4gICAgICBjb25zdCB0bXBsUGF0aCA9IHRlbXBsYXRlRGlyZWN0b3J5O1xuICAgICAgaWYgKCFwYXRoLmlzQWJzb2x1dGUodGVtcGxhdGVEaXJlY3RvcnkpKSB7XG4gICAgICAgIHRocm93IGBDdXN0b20gdGVtcGxhdGUgcGF0aCBuZWVkcyB0byBiZSBhYnNvbHV0ZSwgdGhpcyBpcyBhbiBpc3N1ZSB3aXRoIFwiZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1cImA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKHBhdGgucmVzb2x2ZSh0bXBsUGF0aCwgJyoqLyonKSk7XG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoKGF3YWl0IGZzLnN0YXQoZmlsZSkpLmlzRmlsZSgpKSB7XG4gICAgICAgICAgYXdhaXQgY29weShmaWxlLCBwYXRoLnJlc29sdmUoZGlyLCBwYXRoLnJlbGF0aXZlKHRtcGxQYXRoLCBmaWxlKS5yZXBsYWNlKC9eXy8sICcuJykpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHR5cGVvZiB0ZW1wbGF0ZU1vZHVsZS5wb3N0Q29weSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSh0ZW1wbGF0ZU1vZHVsZS5wb3N0Q29weShkaXIsIG9yYSwgbGludFN0eWxlKSk7XG4gIH1cbn07XG4iXX0=