- Add ./scripts/changelog-for-patch.mjs - Extract common functions to ./scripts/utils/changelog - Use changelog-for-patch.mjs from release script
45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import path from "node:path";
|
|
import minimist from "minimist";
|
|
import semver from "semver";
|
|
import {
|
|
changelogUnreleasedDirPath,
|
|
changelogUnreleasedDirs,
|
|
getEntries,
|
|
printEntries,
|
|
replaceVersions,
|
|
} from "./utils/changelog.mjs";
|
|
|
|
const { previousVersion, newVersion } = parseArgv();
|
|
|
|
const entries = changelogUnreleasedDirs.flatMap((dir) => {
|
|
const dirPath = path.join(changelogUnreleasedDirPath, dir.name);
|
|
return getEntries(dirPath);
|
|
});
|
|
|
|
console.log(
|
|
replaceVersions(
|
|
printEntries(entries).join("\n\n"),
|
|
previousVersion,
|
|
newVersion,
|
|
/** isPatch */ true
|
|
)
|
|
);
|
|
|
|
function parseArgv() {
|
|
const argv = minimist(process.argv.slice(2));
|
|
const previousVersion = argv["prev-version"];
|
|
const newVersion = argv["new-version"];
|
|
if (
|
|
!previousVersion ||
|
|
!newVersion ||
|
|
semver.compare(previousVersion, newVersion) !== -1
|
|
) {
|
|
throw new Error(
|
|
`Invalid argv, prev-version: ${previousVersion}, new-version: ${newVersion}`
|
|
);
|
|
}
|
|
return { previousVersion, newVersion };
|
|
}
|