UNPKG

projen

Version:

CDK for software projects

80 lines 8.97 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.updateChangelog = updateChangelog; const fs_1 = require("fs"); const path_1 = require("path"); const logging = __importStar(require("../logging")); const utils = __importStar(require("../util")); const exec_1 = require("../util/exec"); /** * Prepends input changelog entry onto project-level changelog. * * Currently assumes a headerless changelog formatted according to * [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) * rules. * * @param cwd working directory (git repository) * @param options options */ async function updateChangelog(cwd, options) { const inputChangelog = (0, path_1.join)(cwd, options.inputChangelog); const outputChangelog = (0, path_1.join)(cwd, options.outputChangelog); const versionFile = (0, path_1.join)(cwd, options.versionFile); let version = (await utils.tryReadFile(versionFile)).trim(); if (!version) { throw new Error(`Unable to determine version from ${versionFile}. Cannot proceed with changelog update. Did you run 'bump'?`); } const inputChangelogContent = await fs_1.promises.readFile(inputChangelog, "utf-8"); if (!inputChangelogContent.includes(version)) { throw new Error(`Supplied version ${version} was not found in input changelog. You may want to check it's content.`); } const outputChangelogContent = await fs_1.promises.readFile(outputChangelog, { encoding: "utf-8", flag: "a+", }); const changelogVersionSearchPattern = `[${version}]`; if (outputChangelogContent.indexOf(changelogVersionSearchPattern) > -1) { logging.info(`Changelog already contains an entry for ${version}. Skipping changelog update.`); return; } const newChangelog = inputChangelogContent.trimEnd() + "\n\n" + outputChangelogContent.trimStart(); await fs_1.promises.writeFile(outputChangelog, newChangelog); exec_1.git.run(["add", outputChangelog], { cwd }); exec_1.git.run(["commit", "-m", `chore(release): ${version}`], { cwd }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNoYW5nZWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWxlYXNlL3VwZGF0ZS1jaGFuZ2Vsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0Q0EsMENBOENDO0FBMUZELDJCQUFvQztBQUNwQywrQkFBNEI7QUFDNUIsb0RBQXNDO0FBQ3RDLCtDQUFpQztBQUNqQyx1Q0FBbUM7QUE4Qm5DOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxlQUFlLENBQ25DLEdBQVcsRUFDWCxPQUErQjtJQUUvQixNQUFNLGNBQWMsR0FBRyxJQUFBLFdBQUksRUFBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sZUFBZSxHQUFHLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuRCxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0NBQW9DLFdBQVcsNkRBQTZELENBQzdHLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksS0FBSyxDQUNiLG9CQUFvQixPQUFPLHdFQUF3RSxDQUNwRyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRTtRQUNoRSxRQUFRLEVBQUUsT0FBTztRQUNqQixJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUMsQ0FBQztJQUVILE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQztJQUNyRCxJQUFJLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksQ0FDViwyQ0FBMkMsT0FBTyw4QkFBOEIsQ0FDakYsQ0FBQztRQUNGLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQ2hCLHFCQUFxQixDQUFDLE9BQU8sRUFBRTtRQUMvQixNQUFNO1FBQ04sc0JBQXNCLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckMsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVsRCxVQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzQyxVQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxtQkFBbUIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSBcIi4uL2xvZ2dpbmdcIjtcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBnaXQgfSBmcm9tIFwiLi4vdXRpbC9leGVjXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ2hhbmdlbG9nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGlucHV0IGNoYW5nZWxvZyBlbnRyeSBmaWxlLlxuICAgKlxuICAgKiBSZWxhdGl2ZSB0byBjd2QuXG4gICAqXG4gICAqIEBleGFtcGxlIGRpc3QvY2hhbmdlbG9nLm1kXG4gICAqL1xuICBpbnB1dENoYW5nZWxvZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHByb2plY3QtbGV2ZWwgY2hhbmdlbG9nLlxuICAgKlxuICAgKiBUaGUgY29udGVudHMgb2YgaW5wdXRDaGFuZ2Vsb2cgd2lsbCBiZSBwcmVwZW5kZWQgb250b1xuICAgKiB0aGlzIGNoYW5nZWxvZy5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkXG4gICAqXG4gICAqIEBleGFtcGxlIGNoYW5nZWxvZy5tZFxuICAgKi9cbiAgb3V0cHV0Q2hhbmdlbG9nOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlbGVhc2UgdmVyc2lvbi5cbiAgICovXG4gIHZlcnNpb25GaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJlcGVuZHMgaW5wdXQgY2hhbmdlbG9nIGVudHJ5IG9udG8gcHJvamVjdC1sZXZlbCBjaGFuZ2Vsb2cuXG4gKlxuICogQ3VycmVudGx5IGFzc3VtZXMgYSBoZWFkZXJsZXNzIGNoYW5nZWxvZyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvXG4gKiBbY29udmVudGlvbmFsLWNoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2NvbnZlbnRpb25hbC1jaGFuZ2Vsb2cvY29udmVudGlvbmFsLWNoYW5nZWxvZylcbiAqIHJ1bGVzLlxuICpcbiAqIEBwYXJhbSBjd2Qgd29ya2luZyBkaXJlY3RvcnkgKGdpdCByZXBvc2l0b3J5KVxuICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2hhbmdlbG9nKFxuICBjd2Q6IHN0cmluZyxcbiAgb3B0aW9uczogVXBkYXRlQ2hhbmdlbG9nT3B0aW9ucyxcbikge1xuICBjb25zdCBpbnB1dENoYW5nZWxvZyA9IGpvaW4oY3dkLCBvcHRpb25zLmlucHV0Q2hhbmdlbG9nKTtcbiAgY29uc3Qgb3V0cHV0Q2hhbmdlbG9nID0gam9pbihjd2QsIG9wdGlvbnMub3V0cHV0Q2hhbmdlbG9nKTtcbiAgY29uc3QgdmVyc2lvbkZpbGUgPSBqb2luKGN3ZCwgb3B0aW9ucy52ZXJzaW9uRmlsZSk7XG5cbiAgbGV0IHZlcnNpb24gPSAoYXdhaXQgdXRpbHMudHJ5UmVhZEZpbGUodmVyc2lvbkZpbGUpKS50cmltKCk7XG5cbiAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVuYWJsZSB0byBkZXRlcm1pbmUgdmVyc2lvbiBmcm9tICR7dmVyc2lvbkZpbGV9LiBDYW5ub3QgcHJvY2VlZCB3aXRoIGNoYW5nZWxvZyB1cGRhdGUuIERpZCB5b3UgcnVuICdidW1wJz9gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbnB1dENoYW5nZWxvZ0NvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShpbnB1dENoYW5nZWxvZywgXCJ1dGYtOFwiKTtcblxuICBpZiAoIWlucHV0Q2hhbmdlbG9nQ29udGVudC5pbmNsdWRlcyh2ZXJzaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBTdXBwbGllZCB2ZXJzaW9uICR7dmVyc2lvbn0gd2FzIG5vdCBmb3VuZCBpbiBpbnB1dCBjaGFuZ2Vsb2cuIFlvdSBtYXkgd2FudCB0byBjaGVjayBpdCdzIGNvbnRlbnQuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0Q2hhbmdlbG9nQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKG91dHB1dENoYW5nZWxvZywge1xuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgZmxhZzogXCJhK1wiLFxuICB9KTtcblxuICBjb25zdCBjaGFuZ2Vsb2dWZXJzaW9uU2VhcmNoUGF0dGVybiA9IGBbJHt2ZXJzaW9ufV1gO1xuICBpZiAob3V0cHV0Q2hhbmdlbG9nQ29udGVudC5pbmRleE9mKGNoYW5nZWxvZ1ZlcnNpb25TZWFyY2hQYXR0ZXJuKSA+IC0xKSB7XG4gICAgbG9nZ2luZy5pbmZvKFxuICAgICAgYENoYW5nZWxvZyBhbHJlYWR5IGNvbnRhaW5zIGFuIGVudHJ5IGZvciAke3ZlcnNpb259LiBTa2lwcGluZyBjaGFuZ2Vsb2cgdXBkYXRlLmAsXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBuZXdDaGFuZ2Vsb2cgPVxuICAgIGlucHV0Q2hhbmdlbG9nQ29udGVudC50cmltRW5kKCkgK1xuICAgIFwiXFxuXFxuXCIgK1xuICAgIG91dHB1dENoYW5nZWxvZ0NvbnRlbnQudHJpbVN0YXJ0KCk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKG91dHB1dENoYW5nZWxvZywgbmV3Q2hhbmdlbG9nKTtcblxuICBnaXQucnVuKFtcImFkZFwiLCBvdXRwdXRDaGFuZ2Vsb2ddLCB7IGN3ZCB9KTtcbiAgZ2l0LnJ1bihbXCJjb21taXRcIiwgXCItbVwiLCBgY2hvcmUocmVsZWFzZSk6ICR7dmVyc2lvbn1gXSwgeyBjd2QgfSk7XG59XG4iXX0=