UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

168 lines (130 loc) 13.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _bluebird = require('bluebird'); var _awsSdk = require('aws-sdk'); var _awsSdk2 = _interopRequireDefault(_awsSdk); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _s = require('s3'); var _s2 = _interopRequireDefault(_s); var _oraHandler = require('../util/ora-handler'); var _oraHandler2 = _interopRequireDefault(_oraHandler); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var d = (0, _debug2.default)('electron-forge:publish:s3'); _awsSdk2.default.util.update(_awsSdk2.default.S3.prototype, { addExpect100Continue: function addExpect100Continue() { // Hack around large upload issue: https://github.com/andrewrk/node-s3-client/issues/74 } }); exports.default = function () { var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee3(artifacts, packageJSON, forgeConfig, authToken, tag) { var s3Config, client, folder, uploaded; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: s3Config = forgeConfig.s3; s3Config.secretAccessKey = s3Config.secretAccessKey || authToken; if (s3Config.accessKeyId && s3Config.secretAccessKey && s3Config.bucket) { _context3.next = 4; break; } throw 'In order to publish to s3 you must set the "s3.accessKeyId", "process.env.ELECTRON_FORGE_S3_SECRET_ACCESS_KEY" and "s3.bucket" properties in your forge config. See the docs for more info'; case 4: d('creating s3 client with options:', s3Config); client = _s2.default.createClient({ s3Client: new _awsSdk2.default.S3({ accessKeyId: s3Config.accessKeyId || process.env.AWS_ACCESS_KEY_ID, secretAccessKey: s3Config.secretAccessKey || process.env.AWS_SECRET_ACCESS_KEY }) }); client.s3.addExpect100Continue = function () {}; folder = s3Config.folder || tag || packageJSON.version; uploaded = 0; _context3.next = 11; return (0, _oraHandler2.default)('Uploading Artifacts ' + uploaded + '/' + artifacts.length, function () { var _ref2 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2(uploadSpinner) { var updateSpinner; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: updateSpinner = function updateSpinner() { uploadSpinner.text = 'Uploading Artifacts ' + uploaded + '/' + artifacts.length; // eslint-disable-line }; _context2.next = 3; return _promise2.default.all(artifacts.map(function (artifactPath) { return new _promise2.default(function () { var _ref3 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee(resolve, reject) { var done, uploader; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: done = function done(err) { if (err) return reject(err); uploaded += 1; updateSpinner(); resolve(); }; uploader = client.uploadFile({ localFile: artifactPath, s3Params: { Bucket: s3Config.bucket, Key: folder + '/' + _path2.default.basename(artifactPath), ACL: s3Config.public ? 'public-read' : 'private' } }); d('uploading:', artifactPath); uploader.on('error', function (err) { return done(err); }); uploader.on('progress', function () { d('Upload Progress (' + _path2.default.basename(artifactPath) + ') ' + Math.round(uploader.progressAmount / uploader.progressTotal * 100) + '%'); }); uploader.on('end', function () { return done(); }); case 6: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function (_x7, _x8) { return _ref3.apply(this, arguments); }; }()); })); case 3: case 'end': return _context2.stop(); } } }, _callee2, undefined); })); return function (_x6) { return _ref2.apply(this, arguments); }; }()); case 11: case 'end': return _context3.stop(); } } }, _callee3, undefined); })); return function (_x, _x2, _x3, _x4, _x5) { return _ref.apply(this, arguments); }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInB1Ymxpc2hlcnMvczMuanMiXSwibmFtZXMiOlsiZCIsInV0aWwiLCJ1cGRhdGUiLCJTMyIsInByb3RvdHlwZSIsImFkZEV4cGVjdDEwMENvbnRpbnVlIiwiYXJ0aWZhY3RzIiwicGFja2FnZUpTT04iLCJmb3JnZUNvbmZpZyIsImF1dGhUb2tlbiIsInRhZyIsInMzQ29uZmlnIiwiczMiLCJzZWNyZXRBY2Nlc3NLZXkiLCJhY2Nlc3NLZXlJZCIsImJ1Y2tldCIsImNsaWVudCIsImNyZWF0ZUNsaWVudCIsInMzQ2xpZW50IiwicHJvY2VzcyIsImVudiIsIkFXU19BQ0NFU1NfS0VZX0lEIiwiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZIiwiZm9sZGVyIiwidmVyc2lvbiIsInVwbG9hZGVkIiwibGVuZ3RoIiwidXBsb2FkU3Bpbm5lciIsInVwZGF0ZVNwaW5uZXIiLCJ0ZXh0IiwiYWxsIiwibWFwIiwicmVzb2x2ZSIsInJlamVjdCIsImRvbmUiLCJlcnIiLCJ1cGxvYWRlciIsInVwbG9hZEZpbGUiLCJsb2NhbEZpbGUiLCJhcnRpZmFjdFBhdGgiLCJzM1BhcmFtcyIsIkJ1Y2tldCIsIktleSIsImJhc2VuYW1lIiwiQUNMIiwicHVibGljIiwib24iLCJNYXRoIiwicm91bmQiLCJwcm9ncmVzc0Ftb3VudCIsInByb2dyZXNzVG90YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxJQUFJLHFCQUFNLDJCQUFOLENBQVY7O0FBRUEsaUJBQUlDLElBQUosQ0FBU0MsTUFBVCxDQUFnQixpQkFBSUMsRUFBSixDQUFPQyxTQUF2QixFQUFrQztBQUNoQ0Msd0JBQXNCLFNBQVNBLG9CQUFULEdBQWdDO0FBQ3BEO0FBQ0Q7QUFIK0IsQ0FBbEM7OztpRUFNZSxrQkFBT0MsU0FBUCxFQUFrQkMsV0FBbEIsRUFBK0JDLFdBQS9CLEVBQTRDQyxTQUE1QyxFQUF1REMsR0FBdkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1BDLG9CQURPLEdBQ0lILFlBQVlJLEVBRGhCOztBQUViRCxxQkFBU0UsZUFBVCxHQUEyQkYsU0FBU0UsZUFBVCxJQUE0QkosU0FBdkQ7O0FBRmEsZ0JBR1BFLFNBQVNHLFdBQVQsSUFBd0JILFNBQVNFLGVBQWpDLElBQW9ERixTQUFTSSxNQUh0RDtBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFJTCw0TEFKSzs7QUFBQTs7QUFPYmYsY0FBRSxrQ0FBRixFQUFzQ1csUUFBdEM7O0FBRU1LLGtCQVRPLEdBU0UsWUFBR0MsWUFBSCxDQUFnQjtBQUM3QkMsd0JBQVUsSUFBSSxpQkFBSWYsRUFBUixDQUFXO0FBQ25CVyw2QkFBYUgsU0FBU0csV0FBVCxJQUF3QkssUUFBUUMsR0FBUixDQUFZQyxpQkFEOUI7QUFFbkJSLGlDQUFpQkYsU0FBU0UsZUFBVCxJQUE0Qk0sUUFBUUMsR0FBUixDQUFZRTtBQUZ0QyxlQUFYO0FBRG1CLGFBQWhCLENBVEY7O0FBZWJOLG1CQUFPSixFQUFQLENBQVVQLG9CQUFWLEdBQWlDLFlBQU0sQ0FBRSxDQUF6Qzs7QUFFTWtCLGtCQWpCTyxHQWlCRVosU0FBU1ksTUFBVCxJQUFtQmIsR0FBbkIsSUFBMEJILFlBQVlpQixPQWpCeEM7QUFtQlRDLG9CQW5CUyxHQW1CRSxDQW5CRjtBQUFBO0FBQUEsbUJBb0JQLG1EQUFnQ0EsUUFBaEMsU0FBNENuQixVQUFVb0IsTUFBdEQ7QUFBQSw4RUFBZ0Usa0JBQU9DLGFBQVA7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQzlEQyxxQ0FEOEQsR0FDOUMsU0FBaEJBLGFBQWdCLEdBQU07QUFDMUJELHdDQUFjRSxJQUFkLDRCQUE0Q0osUUFBNUMsU0FBd0RuQixVQUFVb0IsTUFBbEUsQ0FEMEIsQ0FDa0Q7QUFDN0UseUJBSG1FOztBQUFBO0FBQUEsK0JBSzlELGtCQUFRSSxHQUFSLENBQVl4QixVQUFVeUIsR0FBVixDQUFjO0FBQUEsaUNBQzlCO0FBQUEsNEZBQVksaUJBQU9DLE9BQVAsRUFBZ0JDLE1BQWhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNKQywwQ0FESSxHQUNHLFNBQVBBLElBQU8sQ0FBQ0MsR0FBRCxFQUFTO0FBQ3BCLDRDQUFJQSxHQUFKLEVBQVMsT0FBT0YsT0FBT0UsR0FBUCxDQUFQO0FBQ1RWLG9EQUFZLENBQVo7QUFDQUc7QUFDQUk7QUFDRCx1Q0FOUzs7QUFRSkksOENBUkksR0FRT3BCLE9BQU9xQixVQUFQLENBQWtCO0FBQ2pDQyxtREFBV0MsWUFEc0I7QUFFakNDLGtEQUFVO0FBQ1JDLGtEQUFROUIsU0FBU0ksTUFEVDtBQUVSMkIsK0NBQVFuQixNQUFSLFNBQWtCLGVBQUtvQixRQUFMLENBQWNKLFlBQWQsQ0FGVjtBQUdSSywrQ0FBS2pDLFNBQVNrQyxNQUFULEdBQWtCLGFBQWxCLEdBQWtDO0FBSC9CO0FBRnVCLHVDQUFsQixDQVJQOztBQWdCVjdDLHdDQUFFLFlBQUYsRUFBZ0J1QyxZQUFoQjs7QUFFQUgsK0NBQVNVLEVBQVQsQ0FBWSxPQUFaLEVBQXFCO0FBQUEsK0NBQU9aLEtBQUtDLEdBQUwsQ0FBUDtBQUFBLHVDQUFyQjtBQUNBQywrQ0FBU1UsRUFBVCxDQUFZLFVBQVosRUFBd0IsWUFBTTtBQUM1QjlDLGdFQUFzQixlQUFLMkMsUUFBTCxDQUFjSixZQUFkLENBQXRCLFVBQXNEUSxLQUFLQyxLQUFMLENBQVlaLFNBQVNhLGNBQVQsR0FBMEJiLFNBQVNjLGFBQXBDLEdBQXFELEdBQWhFLENBQXREO0FBQ0QsdUNBRkQ7QUFHQWQsK0NBQVNVLEVBQVQsQ0FBWSxLQUFaLEVBQW1CO0FBQUEsK0NBQU1aLE1BQU47QUFBQSx1Q0FBbkI7O0FBdEJVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZCQUFaOztBQUFBO0FBQUE7QUFBQTtBQUFBLDhCQUQ4QjtBQUFBLHlCQUFkLENBQVosQ0FMOEQ7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBaEU7O0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBcEJPOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEciLCJmaWxlIjoicHVibGlzaGVycy9zMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBV1MgZnJvbSAnYXdzLXNkayc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgczMgZnJvbSAnczMnO1xuXG5pbXBvcnQgYXN5bmNPcmEgZnJvbSAnLi4vdXRpbC9vcmEtaGFuZGxlcic7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnZWxlY3Ryb24tZm9yZ2U6cHVibGlzaDpzMycpO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLlMzLnByb3RvdHlwZSwge1xuICBhZGRFeHBlY3QxMDBDb250aW51ZTogZnVuY3Rpb24gYWRkRXhwZWN0MTAwQ29udGludWUoKSB7XG4gICAgLy8gSGFjayBhcm91bmQgbGFyZ2UgdXBsb2FkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5kcmV3cmsvbm9kZS1zMy1jbGllbnQvaXNzdWVzLzc0XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKGFydGlmYWN0cywgcGFja2FnZUpTT04sIGZvcmdlQ29uZmlnLCBhdXRoVG9rZW4sIHRhZykgPT4ge1xuICBjb25zdCBzM0NvbmZpZyA9IGZvcmdlQ29uZmlnLnMzO1xuICBzM0NvbmZpZy5zZWNyZXRBY2Nlc3NLZXkgPSBzM0NvbmZpZy5zZWNyZXRBY2Nlc3NLZXkgfHwgYXV0aFRva2VuO1xuICBpZiAoIShzM0NvbmZpZy5hY2Nlc3NLZXlJZCAmJiBzM0NvbmZpZy5zZWNyZXRBY2Nlc3NLZXkgJiYgczNDb25maWcuYnVja2V0KSkge1xuICAgIHRocm93ICdJbiBvcmRlciB0byBwdWJsaXNoIHRvIHMzIHlvdSBtdXN0IHNldCB0aGUgXCJzMy5hY2Nlc3NLZXlJZFwiLCBcInByb2Nlc3MuZW52LkVMRUNUUk9OX0ZPUkdFX1MzX1NFQ1JFVF9BQ0NFU1NfS0VZXCIgYW5kIFwiczMuYnVja2V0XCIgcHJvcGVydGllcyBpbiB5b3VyIGZvcmdlIGNvbmZpZy4gU2VlIHRoZSBkb2NzIGZvciBtb3JlIGluZm8nOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIH1cblxuICBkKCdjcmVhdGluZyBzMyBjbGllbnQgd2l0aCBvcHRpb25zOicsIHMzQ29uZmlnKTtcblxuICBjb25zdCBjbGllbnQgPSBzMy5jcmVhdGVDbGllbnQoe1xuICAgIHMzQ2xpZW50OiBuZXcgQVdTLlMzKHtcbiAgICAgIGFjY2Vzc0tleUlkOiBzM0NvbmZpZy5hY2Nlc3NLZXlJZCB8fCBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogczNDb25maWcuc2VjcmV0QWNjZXNzS2V5IHx8IHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSxcbiAgICB9KSxcbiAgfSk7XG4gIGNsaWVudC5zMy5hZGRFeHBlY3QxMDBDb250aW51ZSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0IGZvbGRlciA9IHMzQ29uZmlnLmZvbGRlciB8fCB0YWcgfHwgcGFja2FnZUpTT04udmVyc2lvbjtcblxuICBsZXQgdXBsb2FkZWQgPSAwO1xuICBhd2FpdCBhc3luY09yYShgVXBsb2FkaW5nIEFydGlmYWN0cyAke3VwbG9hZGVkfS8ke2FydGlmYWN0cy5sZW5ndGh9YCwgYXN5bmMgKHVwbG9hZFNwaW5uZXIpID0+IHtcbiAgICBjb25zdCB1cGRhdGVTcGlubmVyID0gKCkgPT4ge1xuICAgICAgdXBsb2FkU3Bpbm5lci50ZXh0ID0gYFVwbG9hZGluZyBBcnRpZmFjdHMgJHt1cGxvYWRlZH0vJHthcnRpZmFjdHMubGVuZ3RofWA7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB9O1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYXJ0aWZhY3RzLm1hcChhcnRpZmFjdFBhdGggPT5cbiAgICAgIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgZG9uZSA9IChlcnIpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgdXBsb2FkZWQgKz0gMTtcbiAgICAgICAgICB1cGRhdGVTcGlubmVyKCk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHVwbG9hZGVyID0gY2xpZW50LnVwbG9hZEZpbGUoe1xuICAgICAgICAgIGxvY2FsRmlsZTogYXJ0aWZhY3RQYXRoLFxuICAgICAgICAgIHMzUGFyYW1zOiB7XG4gICAgICAgICAgICBCdWNrZXQ6IHMzQ29uZmlnLmJ1Y2tldCxcbiAgICAgICAgICAgIEtleTogYCR7Zm9sZGVyfS8ke3BhdGguYmFzZW5hbWUoYXJ0aWZhY3RQYXRoKX1gLFxuICAgICAgICAgICAgQUNMOiBzM0NvbmZpZy5wdWJsaWMgPyAncHVibGljLXJlYWQnIDogJ3ByaXZhdGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBkKCd1cGxvYWRpbmc6JywgYXJ0aWZhY3RQYXRoKTtcblxuICAgICAgICB1cGxvYWRlci5vbignZXJyb3InLCBlcnIgPT4gZG9uZShlcnIpKTtcbiAgICAgICAgdXBsb2FkZXIub24oJ3Byb2dyZXNzJywgKCkgPT4ge1xuICAgICAgICAgIGQoYFVwbG9hZCBQcm9ncmVzcyAoJHtwYXRoLmJhc2VuYW1lKGFydGlmYWN0UGF0aCl9KSAke01hdGgucm91bmQoKHVwbG9hZGVyLnByb2dyZXNzQW1vdW50IC8gdXBsb2FkZXIucHJvZ3Jlc3NUb3RhbCkgKiAxMDApfSVgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHVwbG9hZGVyLm9uKCdlbmQnLCAoKSA9PiBkb25lKCkpO1xuICAgICAgfSlcbiAgICApKTtcbiAgfSk7XG59O1xuIl19