semantic-release-dotnet
Version:
A semantic-release plugin for versioning .NET core projects.
55 lines • 2.69 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepare = exports.update = void 0;
const glob = require("glob-promise");
const files_1 = require("./files");
const path = require("path");
const options_1 = require("./options");
function update(options, logger, directory, version) {
return __awaiter(this, void 0, void 0, function* () {
const resolved = options_1.resolveOptions(options);
const debug = resolved.debug ? logger.debug : () => { };
logger.debug = debug;
debug("options", resolved);
// Go throught through the individual files for mapping.
let updated = false;
for (const pattern of resolved.paths) {
// Go through and update any existing files.
let updatedPath = false;
debug("scanning path", pattern);
yield glob(pattern, { cwd: directory }).then((contents) => __awaiter(this, void 0, void 0, function* () {
for (const found of contents) {
yield files_1.updateFile(resolved, logger, path.join(directory, found), version);
updatedPath = true;
}
}));
// If we didn't update a path, see if we can write this file.
if (!updatedPath && !glob.hasMagic(pattern)) {
updated = true;
yield files_1.createFile(resolved, logger, path.join(directory, pattern), version);
}
}
// If we get all the way out and we haven't updated a path, we have a problem.
if (!updated) {
logger.warn("No non-globbed files were found to update .NET version");
}
});
}
exports.update = update;
function prepare(options, config) {
return __awaiter(this, void 0, void 0, function* () {
const { cwd, logger, nextRelease } = config;
yield update(options, logger, cwd, nextRelease.version);
});
}
exports.prepare = prepare;
//# sourceMappingURL=prepare.js.map