update-wda-version.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const {plist, logger} = require('@appium/support');
  2. const path = require('node:path');
  3. const semver = require('semver');
  4. const log = logger.getLogger('Versioner');
  5. /**
  6. * @param {string} argName
  7. * @returns {string|null}
  8. */
  9. function parseArgValue (argName) {
  10. const argNamePattern = new RegExp(`^--${argName}\\b`);
  11. for (let i = 1; i < process.argv.length; ++i) {
  12. const arg = process.argv[i];
  13. if (argNamePattern.test(arg)) {
  14. return arg.includes('=') ? arg.split('=')[1] : process.argv[i + 1];
  15. }
  16. }
  17. return null;
  18. }
  19. async function updateWdaVersion() {
  20. const newVersion = parseArgValue('package-version');
  21. if (!newVersion) {
  22. throw new Error('No package version argument (use `--package-version=xxx`)');
  23. }
  24. if (!semver.valid(newVersion)) {
  25. throw new Error(
  26. `Invalid version specified '${newVersion}'. Version should be in the form '1.2.3'`
  27. );
  28. }
  29. const libManifest = path.resolve('WebDriverAgentLib', 'Info.plist');
  30. log.info(`Updating the WebDriverAgent manifest at '${libManifest}' to version '${newVersion}'`);
  31. await plist.updatePlistFile(libManifest, {
  32. CFBundleShortVersionString: newVersion,
  33. CFBundleVersion: newVersion,
  34. }, false);
  35. }
  36. (async () => await updateWdaVersion())();