UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

131 lines (95 loc) 10.1 kB
'use strict'; 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 _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 }; } const d = (0, _debug2.default)('electron-forge:init:custom'); exports.default = (() => { var _ref = (0, _bluebird.coroutine)(function* (dir, template, lintStyle) { let templateModulePath; yield (0, _oraHandler2.default)(`Locating custom template: "${template}"`, (0, _bluebird.coroutine)(function* () { try { templateModulePath = yield (0, _resolvePackage2.default)(`electron-forge-template-${template}`); d('using global template'); } catch (err) { try { templateModulePath = require.resolve(`electron-forge-template-${template}`); d('using local template'); } catch (err2) { throw `Failed to locate custom template: "${template}"\n\nTry \`npm install -g electron-forge-template-${template}\``; } } })); let templateModule = require(templateModulePath); templateModule = templateModule.default || templateModule; yield (0, _oraHandler2.default)('Installing Template Dependencies', (0, _bluebird.coroutine)(function* () { d('installing dependencies'); yield (0, _installDependencies2.default)(dir, templateModule.dependencies || []); d('installing devDependencies'); yield (0, _installDependencies2.default)(dir, templateModule.devDependencies || [], true); })); yield (0, _oraHandler2.default)('Copying Template Files', (0, _bluebird.coroutine)(function* () { const templateDirectory = templateModule.templateDirectory; if (templateDirectory) { const tmplPath = templateDirectory; if (!_path2.default.isAbsolute(templateDirectory)) { throw `Custom template path needs to be absolute, this is an issue with "electron-forge-template-${template}"`; } const files = _glob2.default.sync(_path2.default.resolve(tmplPath, '**/*')); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(files), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { const file = _step.value; if ((yield _fsExtra2.default.stat(file)).isFile()) { yield (0, _initStarterFiles.copy)(file, _path2.default.resolve(dir, _path2.default.relative(tmplPath, file).replace(/^_/, '.'))); } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } })); if (typeof templateModule.postCopy === 'function') { yield _promise2.default.resolve(templateModule.postCopy(dir, _ora2.default, lintStyle)); } }); return function (_x, _x2, _x3) { return _ref.apply(this, arguments); }; })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQvaW5pdC1jdXN0b20uanMiXSwibmFtZXMiOlsiZCIsImRpciIsInRlbXBsYXRlIiwibGludFN0eWxlIiwidGVtcGxhdGVNb2R1bGVQYXRoIiwiZXJyIiwicmVxdWlyZSIsInJlc29sdmUiLCJlcnIyIiwidGVtcGxhdGVNb2R1bGUiLCJkZWZhdWx0IiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwidGVtcGxhdGVEaXJlY3RvcnkiLCJ0bXBsUGF0aCIsInBhdGgiLCJpc0Fic29sdXRlIiwiZmlsZXMiLCJnbG9iIiwic3luYyIsImZpbGUiLCJmcyIsInN0YXQiLCJpc0ZpbGUiLCJyZWxhdGl2ZSIsInJlcGxhY2UiLCJwb3N0Q29weSIsIm9yYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLElBQUkscUJBQU0sNEJBQU4sQ0FBVjs7O3NDQUVlLFdBQU9DLEdBQVAsRUFBWUMsUUFBWixFQUFzQkMsU0FBdEIsRUFBb0M7QUFDakQsUUFBSUMsa0JBQUo7QUFDQSxVQUFNLDBCQUFVLDhCQUE2QkYsUUFBUyxHQUFoRCwyQkFBb0QsYUFBWTtBQUNwRSxVQUFJO0FBQ0ZFLDZCQUFxQixNQUFNLDhCQUFnQiwyQkFBMEJGLFFBQVMsRUFBbkQsQ0FBM0I7QUFDQUYsVUFBRSx1QkFBRjtBQUNELE9BSEQsQ0FHRSxPQUFPSyxHQUFQLEVBQVk7QUFDWixZQUFJO0FBQ0ZELCtCQUFxQkUsUUFBUUMsT0FBUixDQUFpQiwyQkFBMEJMLFFBQVMsRUFBcEQsQ0FBckI7QUFDQUYsWUFBRSxzQkFBRjtBQUNELFNBSEQsQ0FHRSxPQUFPUSxJQUFQLEVBQWE7QUFDYixnQkFBTyxzQ0FBcUNOLFFBQVMscURBQW9EQSxRQUFTLElBQWxIO0FBQ0Q7QUFDRjtBQUNGLEtBWkssRUFBTjs7QUFjQSxRQUFJTyxpQkFBaUJILFFBQVFGLGtCQUFSLENBQXJCOztBQUVBSyxxQkFBaUJBLGVBQWVDLE9BQWYsSUFBMEJELGNBQTNDOztBQUVBLFVBQU0sMEJBQVMsa0NBQVQsMkJBQTZDLGFBQVk7QUFDN0RULFFBQUUseUJBQUY7QUFDQSxZQUFNLG1DQUFlQyxHQUFmLEVBQW9CUSxlQUFlRSxZQUFmLElBQStCLEVBQW5ELENBQU47QUFDQVgsUUFBRSw0QkFBRjtBQUNBLFlBQU0sbUNBQWVDLEdBQWYsRUFBb0JRLGVBQWVHLGVBQWYsSUFBa0MsRUFBdEQsRUFBMEQsSUFBMUQsQ0FBTjtBQUNELEtBTEssRUFBTjs7QUFPQSxVQUFNLDBCQUFTLHdCQUFULDJCQUFtQyxhQUFZO0FBQ25ELFlBQU1DLG9CQUFvQkosZUFBZUksaUJBQXpDO0FBQ0EsVUFBSUEsaUJBQUosRUFBdUI7QUFDckIsY0FBTUMsV0FBV0QsaUJBQWpCO0FBQ0EsWUFBSSxDQUFDRSxlQUFLQyxVQUFMLENBQWdCSCxpQkFBaEIsQ0FBTCxFQUF5QztBQUN2QyxnQkFBTyw2RkFBNEZYLFFBQVMsR0FBNUc7QUFDRDs7QUFFRCxjQUFNZSxRQUFRQyxlQUFLQyxJQUFMLENBQVVKLGVBQUtSLE9BQUwsQ0FBYU8sUUFBYixFQUF1QixNQUF2QixDQUFWLENBQWQ7O0FBTnFCO0FBQUE7QUFBQTs7QUFBQTtBQVFyQiwwREFBbUJHLEtBQW5CLDRHQUEwQjtBQUFBLGtCQUFmRyxJQUFlOztBQUN4QixnQkFBSSxDQUFDLE1BQU1DLGtCQUFHQyxJQUFILENBQVFGLElBQVIsQ0FBUCxFQUFzQkcsTUFBdEIsRUFBSixFQUFvQztBQUNsQyxvQkFBTSw0QkFBS0gsSUFBTCxFQUFXTCxlQUFLUixPQUFMLENBQWFOLEdBQWIsRUFBa0JjLGVBQUtTLFFBQUwsQ0FBY1YsUUFBZCxFQUF3Qk0sSUFBeEIsRUFBOEJLLE9BQTlCLENBQXNDLElBQXRDLEVBQTRDLEdBQTVDLENBQWxCLENBQVgsQ0FBTjtBQUNEO0FBQ0Y7QUFab0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWF0QjtBQUNGLEtBaEJLLEVBQU47O0FBa0JBLFFBQUksT0FBT2hCLGVBQWVpQixRQUF0QixLQUFtQyxVQUF2QyxFQUFtRDtBQUNqRCxZQUFNLGtCQUFRbkIsT0FBUixDQUFnQkUsZUFBZWlCLFFBQWYsQ0FBd0J6QixHQUF4QixFQUE2QjBCLGFBQTdCLEVBQWtDeEIsU0FBbEMsQ0FBaEIsQ0FBTjtBQUNEO0FBQ0YsRyIsImZpbGUiOiJpbml0L2luaXQtY3VzdG9tLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgZ2xvYiBmcm9tICdnbG9iJztcbmltcG9ydCByZXNvbHZlUGFja2FnZSBmcm9tICdyZXNvbHZlLXBhY2thZ2UnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGNvcHkgfSBmcm9tICcuL2luaXQtc3RhcnRlci1maWxlcyc7XG5pbXBvcnQgYXN5bmNPcmEgZnJvbSAnLi4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgaW5zdGFsbERlcExpc3QgZnJvbSAnLi4vdXRpbC9pbnN0YWxsLWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgb3JhIGZyb20gJy4uL3V0aWwvb3JhJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTppbml0OmN1c3RvbScpO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyAoZGlyLCB0ZW1wbGF0ZSwgbGludFN0eWxlKSA9PiB7XG4gIGxldCB0ZW1wbGF0ZU1vZHVsZVBhdGg7XG4gIGF3YWl0IGFzeW5jT3JhKGBMb2NhdGluZyBjdXN0b20gdGVtcGxhdGU6IFwiJHt0ZW1wbGF0ZX1cImAsIGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgdGVtcGxhdGVNb2R1bGVQYXRoID0gYXdhaXQgcmVzb2x2ZVBhY2thZ2UoYGVsZWN0cm9uLWZvcmdlLXRlbXBsYXRlLSR7dGVtcGxhdGV9YCk7XG4gICAgICBkKCd1c2luZyBnbG9iYWwgdGVtcGxhdGUnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlbXBsYXRlTW9kdWxlUGF0aCA9IHJlcXVpcmUucmVzb2x2ZShgZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1gKTtcbiAgICAgICAgZCgndXNpbmcgbG9jYWwgdGVtcGxhdGUnKTtcbiAgICAgIH0gY2F0Y2ggKGVycjIpIHtcbiAgICAgICAgdGhyb3cgYEZhaWxlZCB0byBsb2NhdGUgY3VzdG9tIHRlbXBsYXRlOiBcIiR7dGVtcGxhdGV9XCJcXG5cXG5UcnkgXFxgbnBtIGluc3RhbGwgLWcgZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1cXGBgO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgbGV0IHRlbXBsYXRlTW9kdWxlID0gcmVxdWlyZSh0ZW1wbGF0ZU1vZHVsZVBhdGgpO1xuXG4gIHRlbXBsYXRlTW9kdWxlID0gdGVtcGxhdGVNb2R1bGUuZGVmYXVsdCB8fCB0ZW1wbGF0ZU1vZHVsZTtcblxuICBhd2FpdCBhc3luY09yYSgnSW5zdGFsbGluZyBUZW1wbGF0ZSBEZXBlbmRlbmNpZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZCgnaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMnKTtcbiAgICBhd2FpdCBpbnN0YWxsRGVwTGlzdChkaXIsIHRlbXBsYXRlTW9kdWxlLmRlcGVuZGVuY2llcyB8fCBbXSk7XG4gICAgZCgnaW5zdGFsbGluZyBkZXZEZXBlbmRlbmNpZXMnKTtcbiAgICBhd2FpdCBpbnN0YWxsRGVwTGlzdChkaXIsIHRlbXBsYXRlTW9kdWxlLmRldkRlcGVuZGVuY2llcyB8fCBbXSwgdHJ1ZSk7XG4gIH0pO1xuXG4gIGF3YWl0IGFzeW5jT3JhKCdDb3B5aW5nIFRlbXBsYXRlIEZpbGVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlRGlyZWN0b3J5ID0gdGVtcGxhdGVNb2R1bGUudGVtcGxhdGVEaXJlY3Rvcnk7XG4gICAgaWYgKHRlbXBsYXRlRGlyZWN0b3J5KSB7XG4gICAgICBjb25zdCB0bXBsUGF0aCA9IHRlbXBsYXRlRGlyZWN0b3J5O1xuICAgICAgaWYgKCFwYXRoLmlzQWJzb2x1dGUodGVtcGxhdGVEaXJlY3RvcnkpKSB7XG4gICAgICAgIHRocm93IGBDdXN0b20gdGVtcGxhdGUgcGF0aCBuZWVkcyB0byBiZSBhYnNvbHV0ZSwgdGhpcyBpcyBhbiBpc3N1ZSB3aXRoIFwiZWxlY3Ryb24tZm9yZ2UtdGVtcGxhdGUtJHt0ZW1wbGF0ZX1cImA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVzID0gZ2xvYi5zeW5jKHBhdGgucmVzb2x2ZSh0bXBsUGF0aCwgJyoqLyonKSk7XG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoKGF3YWl0IGZzLnN0YXQoZmlsZSkpLmlzRmlsZSgpKSB7XG4gICAgICAgICAgYXdhaXQgY29weShmaWxlLCBwYXRoLnJlc29sdmUoZGlyLCBwYXRoLnJlbGF0aXZlKHRtcGxQYXRoLCBmaWxlKS5yZXBsYWNlKC9eXy8sICcuJykpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHR5cGVvZiB0ZW1wbGF0ZU1vZHVsZS5wb3N0Q29weSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSh0ZW1wbGF0ZU1vZHVsZS5wb3N0Q29weShkaXIsIG9yYSwgbGludFN0eWxlKSk7XG4gIH1cbn07XG4iXX0=