package-update.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env node
  2. var fs = require('fs');
  3. var path = require('path');
  4. var childProcess = require('child_process');
  5. // Make sure we have required command line arguments.
  6. if (process.argv.length < 4) {
  7. var msg = '** Must supply a target library and separate version specifier';
  8. process.stderr.write(msg);
  9. process.exit(1);
  10. }
  11. // Extract the desired library target and specifier.
  12. var target = process.argv[2];
  13. var specifier = process.argv[3];
  14. // Translate @latest to a concrete version.
  15. if (specifier === '@latest') {
  16. var cmd = 'npm view ' + target + ' version';
  17. var specifier = childProcess.execSync(cmd);
  18. specifier = '^' + String(specifier).trim();
  19. }
  20. // Read in the package.json.
  21. var packagePath = path.join(process.cwd(), 'package.json');
  22. var package = require(packagePath);
  23. process.stdout.write(package.name + '\n');
  24. // Update dependencies as appropriate.
  25. if (target in package['dependencies']) {
  26. package['dependencies'][target] = specifier;
  27. } else if (target in package['devDependencies']) {
  28. package['devDependencies'][target] = specifier;
  29. }
  30. // Write the file back to disk.
  31. fs.writeFileSync(packagePath, JSON.stringify(package, null, 2) + '\n');