add to the directory
This commit is contained in:
parent
09d60859e1
commit
f759989698
@ -24,11 +24,14 @@
|
||||
"author": "Yanick Champoux <yanick@babyl.ca> (http://techblog.babyl.ca/)",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@sindresorhus/slugify": "^2.2.1",
|
||||
"@yanick/updeep-remeda": "^2.2.0",
|
||||
"ajv": "^8.12.0",
|
||||
"consola": "^3.1.0",
|
||||
"filenamify": "^6.0.0",
|
||||
"fs-extra": "^11.1.1",
|
||||
"markdown-utils": "^1.0.0",
|
||||
"nanoid": "^4.0.2",
|
||||
"remeda": "^1.14.0",
|
||||
"semver": "^7.5.0",
|
||||
"simple-git": "^3.18.0",
|
||||
|
@ -10,6 +10,8 @@ import u from "@yanick/updeep-remeda";
|
||||
import { once } from "remeda";
|
||||
import simpleGit from "simple-git";
|
||||
import Ajv from "ajv";
|
||||
import { nanoid } from "nanoid";
|
||||
import slugify from "@sindresorhus/slugify";
|
||||
|
||||
import print from "./command/print.js";
|
||||
import init from "./command/init.js";
|
||||
@ -54,12 +56,35 @@ yargs(hideBin(process.argv))
|
||||
argv.yargs = yargs;
|
||||
|
||||
argv.add_to_next = async (entry) => {
|
||||
const changelog = yaml.parse(await fs.readFile(argv.source, "utf-8"));
|
||||
const dir = await argv.changelog().then((c) => c.project.next_directory);
|
||||
|
||||
if (dir) {
|
||||
await fs.ensureDir(dir);
|
||||
const filename = join(
|
||||
dir,
|
||||
[
|
||||
entry.ticket,
|
||||
entry.feat,
|
||||
slugify(entry.desc, {
|
||||
separator: "_",
|
||||
}).slice(0, 10),
|
||||
]
|
||||
.filter((x) => x)
|
||||
.join("-") + ".yml"
|
||||
);
|
||||
argv.consola.info(`writing change to ${filename}`);
|
||||
if (fs.existsSync(filename)) {
|
||||
argv.consola.error(`file ${filename} already exist`);
|
||||
yargs.exit(1);
|
||||
}
|
||||
return fs.writeFile(filename, yaml.stringify([entry]));
|
||||
}
|
||||
|
||||
const changelog = await argv.changelog();
|
||||
|
||||
let next = changelog.releases.find(u.matches({ version: "NEXT" }));
|
||||
if (!next) {
|
||||
next = { version: "NEXT", changes: [] };
|
||||
changelog.releases.unshift(next);
|
||||
changelog.releases.unshift(base_next_version);
|
||||
}
|
||||
|
||||
if (Object.keys(entry).length === 1) {
|
||||
@ -68,7 +93,7 @@ yargs(hideBin(process.argv))
|
||||
|
||||
next.changes.push(entry);
|
||||
|
||||
return fs.writeFile(argv.source, yaml.stringify(changelog));
|
||||
return argv.save_changelog();
|
||||
};
|
||||
})
|
||||
.default("source", join(process.cwd(), "CHANGELOG.yml"))
|
||||
|
@ -3,32 +3,32 @@ import yaml from "yaml";
|
||||
import u from "@yanick/updeep-remeda";
|
||||
|
||||
const handler = async (config) => {
|
||||
if (!config.change)
|
||||
throw new Error("can't add a change without a description");
|
||||
if (!config.change)
|
||||
throw new Error("can't add a change without a description");
|
||||
|
||||
const entry = {
|
||||
desc: config.change.join(" "),
|
||||
};
|
||||
const entry = {
|
||||
desc: config.change.join(" "),
|
||||
};
|
||||
|
||||
if (config.ticket) entry.ticket = config.ticket;
|
||||
if (config.type) entry.type = config.type;
|
||||
if (config.ticket) entry.ticket = config.ticket;
|
||||
if (config.type) entry.type = config.type;
|
||||
|
||||
config.consola.start(`adding '${entry.desc}' to the changelog`);
|
||||
config.consola.start(`adding '${entry.desc}' to the changelog`);
|
||||
|
||||
config.add_to_next(entry);
|
||||
await config.add_to_next(entry);
|
||||
|
||||
config.consola.success("done!");
|
||||
config.consola.success("done!");
|
||||
};
|
||||
|
||||
export default {
|
||||
command: "add [change...]",
|
||||
desc: "add a change to the NEXT release",
|
||||
builder: (yargs) => {
|
||||
yargs
|
||||
.string("ticket")
|
||||
.describe("ticket", "ticket associated with the change")
|
||||
.string("type")
|
||||
.describe("type", "type of change");
|
||||
},
|
||||
handler,
|
||||
command: "add [change...]",
|
||||
desc: "add a change to the NEXT release",
|
||||
builder: (yargs) => {
|
||||
yargs
|
||||
.string("ticket")
|
||||
.describe("ticket", "ticket associated with the change")
|
||||
.string("type")
|
||||
.describe("type", "type of change");
|
||||
},
|
||||
handler,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user