62 lines
1.9 KiB
JavaScript
Executable File
62 lines
1.9 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/**
|
|
* Set Version Script
|
|
*
|
|
* Sets the version in package.json and regenerates docker-compose files
|
|
* with the specified version tag.
|
|
*/
|
|
|
|
const { execSync } = require('child_process');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Parse command line arguments
|
|
const args = process.argv.slice(2);
|
|
const version = args[0];
|
|
|
|
if (!version) {
|
|
console.error('❌ Error: Version argument required');
|
|
console.error('Usage: node scripts/set-version.js <version>');
|
|
console.error('Example: node scripts/set-version.js 0.1.0');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Validate version format
|
|
const versionRegex = /^\d+\.\d+\.\d+$/;
|
|
if (!versionRegex.test(version)) {
|
|
console.error(`❌ Error: Invalid version format "${version}"`);
|
|
console.error('Version must be in format: MAJOR.MINOR.PATCH (e.g., 0.1.0)');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Paths
|
|
const packageJsonPath = path.join(__dirname, '..', 'package.json');
|
|
|
|
// Update package.json version
|
|
function updatePackageJson(newVersion) {
|
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
packageJson.version = newVersion;
|
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
|
|
console.log(`✓ Updated package.json to version ${newVersion}`);
|
|
}
|
|
|
|
// Main function
|
|
function main() {
|
|
console.log(`🔄 Setting version to ${version}\n`);
|
|
|
|
// Update package.json
|
|
updatePackageJson(version);
|
|
|
|
console.log(`\n✅ Version set to ${version}`);
|
|
console.log(`\nNext steps:`);
|
|
console.log(` 1. Review changes: git diff`);
|
|
console.log(` 2. Commit changes: git commit -am "chore: set version to ${version}"`);
|
|
console.log(` 3. Create tag: git tag -a v${version} -m "Release v${version}"`);
|
|
console.log(` 4. Generate docker-compose files: npm run docker:compose:generate`);
|
|
console.log(` 5. Build and push Docker images: npm run docker:build:push`);
|
|
}
|
|
|
|
// Run main function
|
|
main();
|