UNPKG

basecamp-guide

Version:
66 lines (56 loc) 2.06 kB
// Dependecies var p = require('path'); var fs = require('fs'); var Colors = require('colors'); var Exec = require('child_process').execSync; var FileSys = require('./FileSystem.js'); /** * * Modifes content of files. * */ var FileContentModifier = { addContent : function(newContent, afterText, originalContent) { if (this.contentExist(newContent, originalContent)) { return undefined; }; var rexpression = new RegExp(this.escapeRegExp(afterText)); var position = originalContent.search(rexpression); var updatedContent = this.writeContentAtPosition(position + afterText.length, newContent, originalContent); return updatedContent; }, replaceContent : function(oldContent, newContent, originalContent) { var rexpression = new RegExp(this.escapeRegExp(oldContent)); return originalContent.replace(rexpression, newContent); }, writeContentAtPosition : function(position, content, fileContent) { var part1 = fileContent.slice(0, position); var part2 = fileContent.slice(position); return part1 + content + part2; }, searchNextPositionOf : function(searchChar, content, startPosition) { var position = -1; for (var i = startPosition; i <= content.length -1; i++) { if (content[i] == searchChar) { position = i; break; } }; return position; }, escapeRegExp : function(expression) { return expression.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); }, contentExist : function(newContent, originalContent) { var rexpression = new RegExp(this.escapeRegExp(newContent)); var position = originalContent.search(rexpression); if (position >= 0) return true; return false; }, /* * config-property will be injected from the * CommandLineTool while adding the command */ config : {}, } module.exports = FileContentModifier;