You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.2 KiB

  1. /*******************************
  2. Register PM
  3. *******************************/
  4. /*
  5. Task to register component repos with Package Managers
  6. * Registers component with bower
  7. * Registers component with NPM
  8. */
  9. var
  10. // node dependencies
  11. process = require('child_process'),
  12. // config
  13. release = require('../config/admin/release'),
  14. // register components and distributions
  15. repos = release.distributions.concat(release.components),
  16. total = repos.length,
  17. index = -1,
  18. stream,
  19. stepRepo
  20. ;
  21. module.exports = function(callback) {
  22. console.log('Registering repos with package managers');
  23. // Do Git commands synchronously per component, to avoid issues
  24. stepRepo = function() {
  25. index = index + 1;
  26. if(index >= total) {
  27. callback();
  28. return;
  29. }
  30. var
  31. repo = repos[index].toLowerCase(),
  32. outputDirectory = release.outputRoot + repo + '/',
  33. exec = process.exec,
  34. execSettings = {cwd: outputDirectory},
  35. updateNPM = 'npm publish'
  36. ;
  37. /* Register with NPM */
  38. exec(updateNPM, execSettings, function(err, stdout, stderr) {
  39. console.log(err, stdout, stderr);
  40. stepRepo();
  41. });
  42. };
  43. stepRepo();
  44. };