@ivuorinen/semantic-release-config
Version:
ivuorinen's shareable configuration for semantic-release.
31 lines (25 loc) • 1.08 kB
JavaScript
;
/* eslint no-console: "off", n/no-process-exit: "off", no-undefined: "off" -- CLI app that gives users feedback */
const fs = require("node:fs");
const path = require("node:path");
// noinspection NpmUsedModulesInstalled
const process = require("node:process");
const checkConfig = require("@ivuorinen/config-checker");
const foundConfig = checkConfig("release");
if (foundConfig.length > 0) {
console.log("semantic-release-config: Found existing semantic-release config file, skipping creation.");
console.log("semantic-release-config: If you want to create a new config file, please remove the existing one.");
console.log(`semantic-release-config: Found config files at: ${foundConfig.join(", ")}`);
process.exit(0);
}
const filePath = path.join(process.env.INIT_CWD || process.cwd(), ".releaserc.json");
const fileConfigObject = {
extends: ["@ivuorinen/semantic-release-config"],
};
try {
fs.writeFileSync(filePath, JSON.stringify(fileConfigObject, undefined, 2), { flag: "wx" });
} catch (err) {
if (err.code !== "EEXIST") {
throw err;
}
}