From f70b565c4dc17a27f7812d9767d68c66a70a68bf Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Tue, 2 Nov 2021 14:58:45 +0100 Subject: [PATCH] Fix small issue in `enhance-changelog.js` utility --- enhance-changelog.js | 55 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/enhance-changelog.js b/enhance-changelog.js index 95b9a73..36f768c 100644 --- a/enhance-changelog.js +++ b/enhance-changelog.js @@ -1,41 +1,40 @@ +const { execSync, spawnSync } = require("child_process"); +const fs = require("fs"); -const { execSync, spawnSync } = require('child_process'); -const fs = require('fs'); +const tag = execSync("git describe --tags --abbrev=0").toString().trim(); +console.log("Checking commits since", tag); -const tag = execSync('git describe --tags --abbrev=0').toString().trim(); -console.log('Checking commits since', tag); - -const args = ['-n', '1', `${tag}..HEAD`, '--abbrev=7', '--pretty=%h', '--', 'CHANGELOG.md']; +const args = ["-n", "1", `${tag}..HEAD`, "--abbrev=7", "--pretty=%h", "--", "CHANGELOG.md"]; function findCommit(line) { - const result = spawnSync('git', ['log', '-S', line, ...args], { shell: false }); - if (result.status === 0) return result.stdout.toString().trim(); - throw new Error(result.stderr.toString()); + const result = spawnSync("git", ["log", "-S", line, ...args], { shell: false }); + if (result.status === 0) return result.stdout.toString().trim(); + throw new Error(result.stderr.toString()); } -const lines = fs.readFileSync('CHANGELOG.md').toString().split(/\r?\n/g); +const lines = fs.readFileSync("CHANGELOG.md").toString().split(/\r?\n/g); let enhanced = 0; let shouldEnhance = false; for (let i = 0; i < lines.length; i++) { - const line = lines[i]; - if (line.startsWith('## Unreleased')) shouldEnhance = true; - else if (line.startsWith('## ')) break; - if (!line.startsWith('- ')) continue; - const commit = findCommit(line); - if (!commit) return; - console.log(line, '=>', commit); - const brackets = line.match(/ \((.*?)\)$/); - if (brackets) { - if (brackets[1].match(/[\da-fA-F]{7}/)) continue; - if (!brackets[1].includes(' ')) { - lines[i] = line.replace(/\(.*?\)$/, `(${commit}, ${brackets[1]})`); - enhanced++; - continue; - } + const line = lines[i]; + if (line.startsWith("## Unreleased")) shouldEnhance = true; + else if (line.startsWith("## ")) break; + if (!line.startsWith("- ")) continue; + const commit = findCommit(line); + if (!commit) continue; + console.log(line, "=>", commit); + const brackets = line.match(/ \((.*?)\)$/); + if (brackets) { + if (brackets[1].match(/[\da-fA-F]{7}/)) continue; + if (!brackets[1].includes(" ")) { + lines[i] = line.replace(/\(.*?\)$/, `(${commit}, ${brackets[1]})`); + enhanced++; + continue; } - lines[i] = `${line} (${commit})`; - enhanced++; + } + lines[i] = `${line} (${commit})`; + enhanced++; } console.log(`Enhanced ${enhanced} lines`); -fs.writeFileSync('CHANGELOG.md', lines.join('\n')); +fs.writeFileSync("CHANGELOG.md", lines.join("\n"));