mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.dev/license
|
|
*/
|
|
|
|
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/manifest.chrome.json');
|
|
|
|
const manifest = JSON.parse(readFileSync(MANIFEST_PATH).toString());
|
|
|
|
// tslint:disable-next-line:no-console
|
|
console.log('Current version', chalk.yellow(manifest.version));
|
|
|
|
// tslint:disable-next-line:no-console
|
|
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);
|
|
});
|
|
});
|