File size: 1,450 Bytes
1dbc34b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/usr/bin/env node
/**
* Updates the version in apps/ui/package.json
* Usage: node scripts/update-version.mjs <version>
* Example: node scripts/update-version.mjs 1.2.3
*/
import { readFileSync, writeFileSync } from 'fs';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const version = process.argv[2];
if (!version) {
console.error('Error: Version argument is required');
console.error('Usage: node scripts/update-version.mjs <version>');
process.exit(1);
}
// Remove 'v' prefix if present (e.g., "v1.2.3" -> "1.2.3")
const cleanVersion = version.startsWith('v') ? version.slice(1) : version;
// Validate version format (basic semver check)
if (!/^\d+\.\d+\.\d+/.test(cleanVersion)) {
console.error(`Error: Invalid version format: ${cleanVersion}`);
console.error('Expected format: X.Y.Z (e.g., 1.2.3)');
process.exit(1);
}
const packageJsonPath = join(__dirname, '..', 'package.json');
try {
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
const oldVersion = packageJson.version;
packageJson.version = cleanVersion;
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
console.log(`Updated version from ${oldVersion} to ${cleanVersion}`);
} catch (error) {
console.error(`Error updating version: ${error.message}`);
process.exit(1);
}
|