sync_version.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env node
  2. import { readFileSync, writeFileSync } from "fs"
  3. import { join, dirname } from "path"
  4. import { fileURLToPath } from "url"
  5. const __filename = fileURLToPath(import.meta.url)
  6. const __dirname = dirname(__filename)
  7. /**
  8. * Sync version from src/package.json to jetbrains/plugin/gradle.properties
  9. */
  10. function syncVersion() {
  11. try {
  12. // Read version from src/package.json
  13. const srcPackageJsonPath = join(__dirname, "../../../src/package.json")
  14. const srcPackageJson = JSON.parse(readFileSync(srcPackageJsonPath, "utf8"))
  15. const version = srcPackageJson.version
  16. if (!version) {
  17. throw new Error("Version not found in src/package.json")
  18. }
  19. console.log(`Found version: ${version}`)
  20. // Read gradle.properties.template
  21. const gradlePropertiesTemplatePath = join(__dirname, "../gradle.properties.template")
  22. const gradlePropertiesTemplateContent = readFileSync(gradlePropertiesTemplatePath, "utf8")
  23. // Replace {{VERSION}} placeholder with actual version
  24. const updatedContent = gradlePropertiesTemplateContent.replace(/\{\{VERSION\}\}/g, version)
  25. // Write updated gradle.properties
  26. const gradlePropertiesPath = join(__dirname, "../gradle.properties")
  27. writeFileSync(gradlePropertiesPath, updatedContent, "utf8")
  28. console.log(`✅ Successfully updated pluginVersion to ${version} in gradle.properties from template`)
  29. } catch (error) {
  30. console.error("❌ Error syncing version:", error.message)
  31. process.exit(1)
  32. }
  33. }
  34. // Run the sync if this script is executed directly
  35. if (import.meta.url === `file://${process.argv[1]}`) {
  36. syncVersion()
  37. }
  38. export default syncVersion