/******************************* Register PM *******************************/ /* Task to register component repos with Package Managers * Registers component with bower * Registers component with NPM */ let // node dependencies process = require('child_process'), fs = require('fs'), npmPublish = require('@jsdevtools/npm-publish'), // config release = require('../config/admin/release'), config = fs.existsSync(__dirname + '/../config/admin/oauth.js') ? require('../config/admin/oauth') : false, // register components and distributions repos = release.distributions.concat(release.components), total = repos.length, index = -1, stream, stepRepo ; module.exports = async function(callback) { console.log('Publishing main repo'); await npmPublish({ package: `./package.json`, token: config.npmToken, greaterVersionOnly: true, debug: function(log) { console.log(log); } }); // Do Git commands synchronously per component, to avoid issues stepRepo = async function() { index = index + 1; if(index >= total) { callback(); return; } let repo = repos[index].toLowerCase(), outputDirectory = `${release.outputRoot}${repo}/`, exec = process.exec, execSettings = {cwd: outputDirectory}, updateNPM = 'meteor publish;' ; /* Register with NPM */ console.info(`NPM Publish "${repo}"`); console.info(outputDirectory); await npmPublish({ package: `${outputDirectory}/package.json`, token: config.npmToken, greaterVersionOnly: true, debug: function(log) { console.log(log); } }); /* Register with NPM */ console.info(`Meteor publish "${repo}"`); console.info(outputDirectory); exec(updateNPM, execSettings, function(err, stdout, stderr) { console.log(err, stdout, stderr); stepRepo(); }); }; stepRepo(); };