OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
_backup
/
tinymce
/
tinymce
/
tools
/
tasks
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/20/2020 05:35:32 AM
rwxr-xr-x
📄
bundle.js
1.78 KB
02/20/2020 05:35:36 AM
rw-r--r--
📄
globals.js
2.89 KB
02/20/2020 05:35:35 AM
rw-r--r--
📄
moxiezip.js
2.72 KB
02/20/2020 05:35:36 AM
rw-r--r--
📄
validateVersion.js
685 bytes
02/20/2020 05:35:37 AM
rw-r--r--
Editing: globals.js
Close
var child_process = require('child_process'); var fs = require('fs'); var path = require('path'); var readFile = function (filePath) { return fs.readFileSync(filePath, 'utf8').toString(); }; var writeFile = function (filePath, content) { fs.writeFileSync(filePath, content); }; var parseConfig = function (filePath) { var data = JSON.parse(readFile(filePath)); return data; }; var mkdirp = function (grunt, dirPath) { grunt.file.mkdir(dirPath); }; var fail = function (msg) { throw new Error(msg); }; var required = function (config, propName) { var failMsg = 'Required property \'' + propName + '\' not defined in:\n' + JSON.stringify(config, null, ' '); return propName in config ? config[propName] : fail(failMsg); }; var createTargetInfo = function (filePath, targetId, globalId) { return { filePath: filePath, targetId: targetId, globalId: globalId, globalName: globalId.split('.').pop() }; }; var targetIdToTargetInfo = function (outputPath, replacer) { return function (targetId) { var filePath = path.join(outputPath, targetId.replace(/\./g, '\/')); var globalId = replacer(targetId); return createTargetInfo(filePath, targetId, globalId); }; }; var replaceVariables = function (str, variables) { Object.keys(variables).forEach(function (variable) { str = str.replace(new RegExp('\\{\\$' + variable + '\\}', 'g'), variables[variable]); }); return str; }; var generateGlobaliserModule = function (templateFile, targetInfo) { var template = readFile(templateFile); writeFile(targetInfo.filePath + '.js', replaceVariables(template, targetInfo)); }; var replacePrefixes = function (id, search, replace) { return search.reduce(function (id, item) { return id.replace(item, replace); }, id); }; var replacePrefix = function (grunt, templateFile, outputPath, config) { var search = required(config, 'search'); var replace = required(config, 'replace'); var targets = required(config, 'targets'); targets .map(targetIdToTargetInfo(outputPath, id => replacePrefixes(id, search, replace))) .forEach(function (targetInfo) { mkdirp(grunt, path.dirname(targetInfo.filePath)); generateGlobaliserModule(templateFile, targetInfo); }); }; var executeAction = function (grunt, action, templateFile, outputPath, config) { if (action === 'replace.prefix') { replacePrefix(grunt, templateFile, outputPath, config); } }; module.exports = function (grunt) { grunt.registerTask('globals', 'Generates a globals layer', function () { var options = grunt.config([this.name]).options; var templateFile = required(options, 'templateFile'); var outputDir = required(options, 'outputDir'); var configJson = required(options, 'configFile'); var config = parseConfig(configJson); Object.keys(config).forEach(function (action) { executeAction(grunt, action, templateFile, outputDir, config[action]); }); }); };