mangle-version
Version:
Version mangler for package.json
63 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const fs_1 = require("fs");
const path_1 = require("path");
const version_mangler_1 = require("./lib/version-mangler");
commander_1.program
.description('Mangle package.version to [version][+-][build]')
.option('-v, --version <version>', 'Override package version')
.option('-b, --build <build>', 'Override build version')
.option('-m, --mangle <mangle>', 'Override mangled version')
.option('-p, --path <path>', 'Set package path instead of cwd')
.option('-t, --type <type>', 'Mangle version type [prerelease|build]', 'prerelease')
.parse();
const options = commander_1.program.opts();
const packagePath = (0, path_1.resolve)(options.path || process.cwd());
async function getBuildNumber() {
if (options.build) {
return options.build;
}
const envBuildVersion = [
'OMEGA_BUILD_NUMBER',
'BUILD_NUMBER',
'CI_COMMIT_SHA',
'GIT_COMMIT_SHA'
];
for (const x of envBuildVersion) {
if (process.env[x]) {
const v = process.env[x].slice(0, 7);
console.log(`mangle-version: Using build version from ENV[${x}]: ${v}`);
return v;
}
}
const gitshaShort = (await (0, version_mangler_1.detectGitCommitSHA)(packagePath)).slice(0, 7);
console.log(`mangle-version: Using git commit hash for build version: ${gitshaShort}`);
return gitshaShort;
}
function getVersionNumber() {
if (options.version) {
return options.version;
}
const envBuildVersion = [
'OMEGA_PACKAGE_VERSION',
'PACKAGE_VERSION'
];
for (const x of envBuildVersion) {
if (process.env[x]) {
console.log(`mangle-version: Using package version from ENV[${x}]: ${process.env[x]}`);
return process.env[x];
}
}
const filePath = (0, path_1.resolve)(packagePath, 'package.json');
const pkg = JSON.parse((0, fs_1.readFileSync)(filePath, 'utf-8'));
const packageVersion = `${pkg.version}`;
return packageVersion.replace(/[\+\-]\S+$/, '');
}
async function modifyPackageVersion() {
const version = options.mangle || `${await getVersionNumber()}${options.type === 'prerelease' ? '-' : '+'}${await getBuildNumber()}`;
console.log(`mangle-version: Setting package version to: ${version}`);
(0, version_mangler_1.modifyPackageJsonSYNC)(packagePath, version);
}
modifyPackageVersion();
//# sourceMappingURL=main.js.map