sync-cli-metadata.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env node
  2. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  3. // SPDX-License-Identifier: Apache-2.0
  4. // SPDX-License-Identifier: MIT
  5. /*
  6. This script is solely intended to be run as part of the `covector version` step to
  7. keep the `../tooling/cli/metadata.json` up to date with other version bumps. Long term
  8. we should look to find a more "rusty way" to import / "pin" a version value in our cli.rs
  9. rust binaries.
  10. */
  11. const {
  12. readFileSync,
  13. writeFileSync
  14. } = require('fs')
  15. const packageNickname = process.argv[2]
  16. const filePath = packageNickname === 'cli.js' ? `../../../tooling/cli/metadata.json` : `../../tooling/cli/metadata.json`
  17. const bump = process.argv[3]
  18. if (bump !== 'prerelease') {
  19. throw new Error(
  20. `We don't handle anything except prerelease right now. Exiting.`
  21. )
  22. }
  23. const inc = (version) => {
  24. const v = version.split('.')
  25. const n = v[v.length - 1]
  26. v[v.length - 1] = String(Number(n) + 1)
  27. return v.join('.')
  28. }
  29. // read file into js object
  30. const metadata = JSON.parse(readFileSync(filePath, 'utf-8'))
  31. // set field version
  32. let version
  33. if (packageNickname === 'cli.js') {
  34. version = inc(metadata[packageNickname].version)
  35. metadata[packageNickname].version = version
  36. } else {
  37. version = inc(metadata[packageNickname])
  38. metadata[packageNickname] = version
  39. }
  40. writeFileSync(filePath, JSON.stringify(metadata, null, 2) + '\n')
  41. console.log(`wrote ${version} for ${packageNickname} into metadata.json`)
  42. console.dir(metadata)