get-dependency.js 955 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Get the appropriate dependency for a package.
  2. var childProcess = require('child_process');
  3. var path = require('path');
  4. var glob = require('glob');
  5. var name = process.argv[2];
  6. // Look in all of the packages.
  7. var basePath = path.resolve('.');
  8. var files = glob.sync(path.join(basePath, 'packages/*'));
  9. for (var j = 0; j < files.length; j++) {
  10. // Read in the package.json.
  11. var packagePath = path.join(files[j], 'package.json');
  12. try {
  13. var package = require(packagePath);
  14. } catch (e) {
  15. console.log('Skipping package ' + packagePath);
  16. continue;
  17. }
  18. if (package.name === name) {
  19. console.log(package.version);
  20. process.exit(0);
  21. }
  22. var deps = package.dependencies || [];
  23. if (deps[name]) {
  24. console.log(deps[name]);
  25. process.exit(0);
  26. }
  27. }
  28. console.log('** Package not yet included!');
  29. var cmd = 'npm view ' + name + ' version';
  30. var specifier = childProcess.execSync(cmd);
  31. console.log('^' + String(specifier).trim());