vibetunnel/web/scripts/validate-version-sync.js
2025-06-30 02:51:21 +01:00

40 lines
No EOL
1.3 KiB
JavaScript

/**
* Validates that the version in package.json matches the MARKETING_VERSION in the macOS xcconfig file
*/
const fs = require('fs');
const path = require('path');
const { version } = require('../package.json');
// Path to the xcconfig file
const xcconfigPath = path.join(__dirname, '../../mac/VibeTunnel/version.xcconfig');
// Check if xcconfig file exists
if (!fs.existsSync(xcconfigPath)) {
console.error(`❌ xcconfig file not found at: ${xcconfigPath}`);
process.exit(1);
}
// Read and parse xcconfig file
const xcconfigContent = fs.readFileSync(xcconfigPath, 'utf8');
const marketingVersionMatch = xcconfigContent.match(/MARKETING_VERSION\s*=\s*(.+)/);
if (!marketingVersionMatch) {
console.error('❌ MARKETING_VERSION not found in xcconfig file');
process.exit(1);
}
const xconfigVersion = marketingVersionMatch[1].trim();
// Compare versions
if (version !== xconfigVersion) {
console.error(`❌ Version mismatch detected!`);
console.error(` package.json: ${version}`);
console.error(` xcconfig: ${xconfigVersion}`);
console.error('');
console.error('To fix this:');
console.error('1. Update package.json version field to match xcconfig');
console.error('2. Or update MARKETING_VERSION in mac/VibeTunnel/version.xcconfig');
process.exit(1);
}
console.log(`✅ Version sync validated: ${version}`);