ness
Version:
✪ No-effort static sites deployed to your AWS account.
79 lines • 7.32 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.gitIgnore = exports.gitIgnoreNessDirectory = exports.isIgnoringNessDirectory = void 0;
const fs = __importStar(require("fs-extra"));
const path = __importStar(require("path"));
/**
* Check whether .ness is already being gitignored.
*/
async function isIgnoringNessDirectory() {
try {
const gitIgnorePath = path.resolve('.gitignore');
const gitIgnoreContents = await fs.readFile(gitIgnorePath, 'utf8');
return gitIgnoreContents.includes('.ness');
}
catch (_a) {
return false;
}
}
exports.isIgnoringNessDirectory = isIgnoringNessDirectory;
/**
* Add .ness to .gitignore if it's not already there.
*/
async function gitIgnoreNessDirectory() {
return await gitIgnore('.ness', 'Local Ness directory');
}
exports.gitIgnoreNessDirectory = gitIgnoreNessDirectory;
/**
* Add a pattern to .gitignore. If .gitignore does not exist, it will be created.
*
* @param pattern The pattern to be added to .gitignore.
* @param comment An optional comment above the ignore statement.
*/
async function gitIgnore(pattern, comment) {
const gitIgnorePath = path.resolve('.gitignore');
const content = comment ? `\n# ${comment}\n${pattern}` : `\n${pattern}`;
const hasGitIgnore = await fs.pathExists(gitIgnorePath);
if (!hasGitIgnore) {
// No .gitignore file. Create one and add ignore statement.
await fs.writeFile(gitIgnorePath, content, 'utf8');
return true;
}
let gitIgnoreContents;
let gitIgnoreLines;
try {
gitIgnoreContents = await fs.readFile(gitIgnorePath, 'utf8');
gitIgnoreLines = gitIgnoreContents.split(/[\r\n]+/);
}
catch (_a) {
// ignore
}
// Not already ignoring pattern so add it to .gitignore.
if (gitIgnoreLines && !gitIgnoreLines.includes(pattern)) {
const updatedContents = `${gitIgnoreContents}\n${content}`;
await fs.writeFile(gitIgnorePath, updatedContents, 'utf8');
return true;
}
return false;
}
exports.gitIgnore = gitIgnore;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aWdub3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2dpdGlnbm9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQThCO0FBQzlCLDJDQUE0QjtBQUU1Qjs7R0FFRztBQUNJLEtBQUssVUFBVSx1QkFBdUI7SUFDM0MsSUFBSTtRQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDaEQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ2xFLE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQzNDO0lBQUMsV0FBTTtRQUNOLE9BQU8sS0FBSyxDQUFBO0tBQ2I7QUFDSCxDQUFDO0FBUkQsMERBUUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxzQkFBc0I7SUFDMUMsT0FBTyxNQUFNLFNBQVMsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBRkQsd0RBRUM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsT0FBZSxFQUFFLE9BQWdCO0lBQy9ELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQTtJQUV2RSxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNqQiwyREFBMkQ7UUFDM0QsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbEQsT0FBTyxJQUFJLENBQUE7S0FDWjtJQUVELElBQUksaUJBQWlCLENBQUE7SUFDckIsSUFBSSxjQUFjLENBQUE7SUFDbEIsSUFBSTtRQUNGLGlCQUFpQixHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDNUQsY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUNwRDtJQUFDLFdBQU07UUFDTixTQUFTO0tBQ1Y7SUFFRCx3REFBd0Q7SUFDeEQsSUFBSSxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZELE1BQU0sZUFBZSxHQUFHLEdBQUcsaUJBQWlCLEtBQUssT0FBTyxFQUFFLENBQUE7UUFDMUQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUQsT0FBTyxJQUFJLENBQUE7S0FDWjtJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQTVCRCw4QkE0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIC5uZXNzIGlzIGFscmVhZHkgYmVpbmcgZ2l0aWdub3JlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzSWdub3JpbmdOZXNzRGlyZWN0b3J5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IGdpdElnbm9yZVBhdGggPSBwYXRoLnJlc29sdmUoJy5naXRpZ25vcmUnKVxuICAgIGNvbnN0IGdpdElnbm9yZUNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUoZ2l0SWdub3JlUGF0aCwgJ3V0ZjgnKVxuICAgIHJldHVybiBnaXRJZ25vcmVDb250ZW50cy5pbmNsdWRlcygnLm5lc3MnKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIEFkZCAubmVzcyB0byAuZ2l0aWdub3JlIGlmIGl0J3Mgbm90IGFscmVhZHkgdGhlcmUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnaXRJZ25vcmVOZXNzRGlyZWN0b3J5KCkge1xuICByZXR1cm4gYXdhaXQgZ2l0SWdub3JlKCcubmVzcycsICdMb2NhbCBOZXNzIGRpcmVjdG9yeScpXG59XG5cbi8qKlxuICogQWRkIGEgcGF0dGVybiB0byAuZ2l0aWdub3JlLiBJZiAuZ2l0aWdub3JlIGRvZXMgbm90IGV4aXN0LCBpdCB3aWxsIGJlIGNyZWF0ZWQuXG4gKlxuICogQHBhcmFtIHBhdHRlcm4gVGhlIHBhdHRlcm4gdG8gYmUgYWRkZWQgdG8gLmdpdGlnbm9yZS5cbiAqIEBwYXJhbSBjb21tZW50IEFuIG9wdGlvbmFsIGNvbW1lbnQgYWJvdmUgdGhlIGlnbm9yZSBzdGF0ZW1lbnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnaXRJZ25vcmUocGF0dGVybjogc3RyaW5nLCBjb21tZW50Pzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGdpdElnbm9yZVBhdGggPSBwYXRoLnJlc29sdmUoJy5naXRpZ25vcmUnKVxuICBjb25zdCBjb250ZW50ID0gY29tbWVudCA/IGBcXG4jICR7Y29tbWVudH1cXG4ke3BhdHRlcm59YCA6IGBcXG4ke3BhdHRlcm59YFxuXG4gIGNvbnN0IGhhc0dpdElnbm9yZSA9IGF3YWl0IGZzLnBhdGhFeGlzdHMoZ2l0SWdub3JlUGF0aClcbiAgaWYgKCFoYXNHaXRJZ25vcmUpIHtcbiAgICAvLyBObyAuZ2l0aWdub3JlIGZpbGUuIENyZWF0ZSBvbmUgYW5kIGFkZCBpZ25vcmUgc3RhdGVtZW50LlxuICAgIGF3YWl0IGZzLndyaXRlRmlsZShnaXRJZ25vcmVQYXRoLCBjb250ZW50LCAndXRmOCcpXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGxldCBnaXRJZ25vcmVDb250ZW50c1xuICBsZXQgZ2l0SWdub3JlTGluZXNcbiAgdHJ5IHtcbiAgICBnaXRJZ25vcmVDb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKGdpdElnbm9yZVBhdGgsICd1dGY4JylcbiAgICBnaXRJZ25vcmVMaW5lcyA9IGdpdElnbm9yZUNvbnRlbnRzLnNwbGl0KC9bXFxyXFxuXSsvKVxuICB9IGNhdGNoIHtcbiAgICAvLyBpZ25vcmVcbiAgfVxuXG4gIC8vIE5vdCBhbHJlYWR5IGlnbm9yaW5nIHBhdHRlcm4gc28gYWRkIGl0IHRvIC5naXRpZ25vcmUuXG4gIGlmIChnaXRJZ25vcmVMaW5lcyAmJiAhZ2l0SWdub3JlTGluZXMuaW5jbHVkZXMocGF0dGVybikpIHtcbiAgICBjb25zdCB1cGRhdGVkQ29udGVudHMgPSBgJHtnaXRJZ25vcmVDb250ZW50c31cXG4ke2NvbnRlbnR9YFxuICAgIGF3YWl0IGZzLndyaXRlRmlsZShnaXRJZ25vcmVQYXRoLCB1cGRhdGVkQ29udGVudHMsICd1dGY4JylcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=