@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
58 lines • 6.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RestoreCommand = void 0;
const application_1 = require("../core/application");
const bump_manifest_1 = require("../core/bump-manifest");
const format_utils_1 = require("../core/format-utils");
const version_utils_1 = require("../core/version-utils");
const workspace_utils_1 = require("../core/workspace-utils");
const context_1 = require("./context");
class RestoreCommand extends context_1.GitVersionCommand {
static paths = [
['restore'],
];
async execute() {
const { project, configuration, git, branch, logger } = await application_1.Application.init(this.context.application);
if (!project) {
return 1;
}
logger.reportInfo(`Branch type: ${(0, format_utils_1.formatVersionBranch)(branch)}`);
const section = logger.beginSection('Restore step');
const isShallow = await git.exec('rev-parse', '--is-shallow-repository');
if (isShallow === 'true') {
logger.reportInfo('Unshallowing');
if (!(await git.execSilent('fetch', '--unshallow'))) {
await git.execSilent('fetch', '--all');
}
}
await bump_manifest_1.BumpManifest.clear(configuration);
if (configuration.options.independentVersioning) {
const promises = project.workspaces.map(async (workspace) => {
const version = await this.currentVersionFromGit(workspace, git, branch, configuration.options.versionTagPrefix);
await (0, workspace_utils_1.updateWorkspaceVersion)(workspace, logger, version.version);
});
await Promise.all(promises);
}
else {
const version = await this.currentVersionFromGit(project, git, branch, configuration.options.versionTagPrefix);
logger.reportInfo(`Latest version in git tags: ${(0, format_utils_1.formatVersion)(version.version)}`);
await Promise.all(project.workspaces.map(w => (0, workspace_utils_1.updateWorkspaceVersion)(w, logger, version.version)));
}
logger.endSection(section);
return 0;
}
async currentVersionFromGit(workspace, git, branch, standardPrefix) {
const tags = await git.versionTags(workspace.tagPrefix);
if (tags.length === 0) {
const projectTags = await git.versionTags(workspace.project.tagPrefix);
if (projectTags.length === 0) {
const officialGenericTags = await git.versionTags(standardPrefix);
return (0, version_utils_1.determineCurrentVersion)(officialGenericTags, branch, standardPrefix);
}
return (0, version_utils_1.determineCurrentVersion)(projectTags, branch, workspace.project.tagPrefix);
}
return (0, version_utils_1.determineCurrentVersion)(tags, branch, workspace.tagPrefix);
}
}
exports.RestoreCommand = RestoreCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9yZXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUNsRCx5REFBcUQ7QUFFckQsdURBQTBFO0FBRTFFLHlEQUFnRTtBQUNoRSw2REFBNkU7QUFFN0UsdUNBQThDO0FBRTlDLE1BQWEsY0FBZSxTQUFRLDJCQUFpQjtJQUNuRCxNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsQ0FBQyxTQUFTLENBQUM7S0FDWixDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0seUJBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLGdCQUFnQixJQUFBLGtDQUFtQixFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXBELE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUN6RSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8s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