sync-cli-metadata.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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.rs/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 { readFileSync, writeFileSync } = require("fs");
  12. const filePath = `../../tooling/cli.rs/metadata.json`;
  13. const packageNickname = process.argv[2];
  14. const bump = process.argv[3];
  15. if (bump !== "prerelease") {
  16. throw new Error(
  17. `We don't handle anything except prerelease right now. Exiting.`
  18. );
  19. }
  20. const inc = (version) => {
  21. const v = version.split("");
  22. const n = v.pop();
  23. return [...v, String(Number(n) + 1)].join("");
  24. };
  25. // read file into js object
  26. const metadata = JSON.parse(readFileSync(filePath, "utf-8"));
  27. // set field version
  28. let version;
  29. if (packageNickname === "cli.js") {
  30. version = inc(metadata[packageNickname].version);
  31. metadata[packageNickname].version = version;
  32. } else {
  33. version = inc(metadata[packageNickname]);
  34. metadata[packageNickname] = version;
  35. }
  36. writeFileSync(filePath, JSON.stringify(metadata, null, 2) + "\n");
  37. console.log(`wrote ${version} for ${packageNickname} into metadata.json`);
  38. console.dir(metadata);