mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
const chalk = require('chalk');
|
|
const { createInterface } = require('readline');
|
|
const semver = require('semver');
|
|
const { writeFileSync, readFileSync } = require('fs');
|
|
const { join } = require('path');
|
|
|
|
const MANIFEST_PATH = join(__dirname, 'src/manifest.json');
|
|
|
|
const manifest = JSON.parse(readFileSync(MANIFEST_PATH).toString());
|
|
|
|
console.log('Current version', chalk.yellow(manifest.version));
|
|
console.log('Current version name', chalk.yellow(manifest.version_name));
|
|
|
|
const setVersion = (nextVersion) => {
|
|
manifest.version = nextVersion;
|
|
manifest.version_name = nextVersion;
|
|
|
|
writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2));
|
|
};
|
|
|
|
const answerMap = {
|
|
yes: true,
|
|
y: true,
|
|
no: false,
|
|
n: false,
|
|
};
|
|
|
|
const rl = createInterface({
|
|
input: process.stdin,
|
|
output: process.stdout,
|
|
});
|
|
|
|
rl.question(chalk.yellowBright('Set the current version: '), (nextVersion) => {
|
|
if (!semver.valid(nextVersion)) {
|
|
console.error(chalk.red('Invalid version'));
|
|
}
|
|
if (semver.gt(nextVersion, manifest.version)) {
|
|
rl.close();
|
|
setVersion(nextVersion);
|
|
return;
|
|
}
|
|
console.error(chalk.yellow('Next version cannot be smaller or equal to the previous one'));
|
|
rl.question('Are you sure you want to continue? (y/n) ', (answer) => {
|
|
rl.close();
|
|
answer = answer.toLowerCase();
|
|
if (!answerMap[answer]) {
|
|
throw new Error('Exiting');
|
|
}
|
|
setVersion(nextVersion);
|
|
});
|
|
});
|