mediacentral-feature-pack
Version:
A feature pack tool for mediacentral cloud-ux projects
42 lines (35 loc) • 2.12 kB
JavaScript
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
const helper = require('./helper');
const log4js = require('log4js').configure(require('../config/log4jsConfig').config);
const logger = require.main.require('log4js').getLogger(`mediacentral-feature-pack ${__filename}`);
module.exports = (() => {
var _ref = _asyncToGenerator(function* (options) {
logger.info('----- Starting feature-pack creation process -----');
const cli = options === undefined;
if (cli) options = yield helper.readArgs();
yield helper.optionsValidation(options);
logger.info('----- Passed options are valid -----');
const compresedFilePaths = yield helper.createCompressNames(options);
let error = undefined;
try {
yield helper.compress([options.metadata, options.helm, options.docker], compresedFilePaths.fileTar, compresedFilePaths.fileBz2);
} catch (e) {
logger.error('Error while compressing files with options: ', options);
error = e;
} finally {
yield helper.removeFile(compresedFilePaths.fileTar).catch(function (e) {
return logger.error(`Couldn't delete ${e.path} (${e.code}).`);
});
if (error) throw error;
}
logger.info('----- Feature-pack successfully created -----');
return Object.assign({
output: `Your feature pack has been successfully created to (${compresedFilePaths.fileBz2}) file.`,
featurePackFile: compresedFilePaths.fileBz2
}, options);
});
function pack(_x) {
return _ref.apply(this, arguments);
}
return pack;
})();