UNPKG

semantic-release-hackage

Version:

A semantic-release plugin to publish Haskell packages to Hackage

34 lines 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepare = exports.readAndWriteNewCabal = exports.VERSION_PATTERN = void 0; const exec_1 = require("./utils/exec"); const prepare_1 = require("./utils/prepare"); const promises_1 = require("fs/promises"); const path_1 = require("path"); exports.VERSION_PATTERN = /^\s*version:\s+(\S+)/m; const readAndWriteNewCabal = async (fullCabalPath, newVersion) => { const versionContents = await (0, promises_1.readFile)(fullCabalPath, "utf8"); const newContents = versionContents.replace(exports.VERSION_PATTERN, `version: ${newVersion}`); await (0, promises_1.writeFile)(fullCabalPath, newContents, "utf8"); }; exports.readAndWriteNewCabal = readAndWriteNewCabal; const prepare = async ({ cabalFile, versionPrefix = "" }, { nextRelease, logger, cwd }) => { const realCwd = cwd ?? process.cwd(); logger.log("Current working directory: ", realCwd); const cabalFileName = cabalFile ?? (0, prepare_1.lookupCabalFilename)(realCwd, logger); const { version } = nextRelease; const fullCabalPath = (0, path_1.resolve)(realCwd, cabalFileName); const fullVersion = `${versionPrefix}${version}`; logger.log("Reading .cabal file: ", fullCabalPath); await (0, exports.readAndWriteNewCabal)(fullCabalPath, fullVersion); logger.log("Writing new version %s to `%s`", version, fullCabalPath); logger.log("Running cabal sdist command"); const { warn, output } = await (0, exec_1.runExecCommand)("cabal sdist"); if (warn) { logger.warn(warn); } logger.log(output); logger.success("Prepare done!"); }; exports.prepare = prepare; //# sourceMappingURL=prepare.js.map