builder.js (1404B)
1 const maxApi = require('max-api'); 2 const fs = require('fs'); 3 4 maxApi.addHandlers({ 5 // Write the .cpp file 6 create: async (name) => { 7 let basedir = process.cwd() + '/../../../'; // => /gen-rack 8 9 // Replace GEN_RACK_DISPLAY_NAME with all lowercase name 10 // Replace GEN_RACK_NAME with name with the first letter capitalized 11 fs.readFile(basedir + 'src/modules/module.in', 'utf8', function (err, data) { 12 if (err) { 13 maxApi.post('Error reading module.in.'); 14 return; 15 } 16 let result = data.split('GEN_RACK_DISPLAY_NAME').join(name); 17 result = result.split('GEN_RACK_NAME').join(name.charAt(0).toUpperCase() + name.slice(1)); 18 19 fs.writeFile(basedir + 'src/modules/' + name + '.cpp', result, 'utf8', function (err) { 20 if (err) { 21 maxApi.post('Error writing .cpp'); 22 } 23 }); 24 }); 25 26 let pluginFile = basedir + 'src/plugin.cpp'; 27 // line before end: 28 // 'p->addModel(model' + name.charAt(0).toUpperCase() + name.slice(1) + ');'; 29 30 let headerFile = basedir + 'src/plugin.hpp'; 31 // 'extern Model* model' + name.charAt(0).toUpperCase() + name.slice(1) + ';'; 32 fs.appendFileSync(headerFile, 'extern Model* model' + name.charAt(0).toUpperCase() + name.slice(1) + ';\n'); 33 }, 34 35 });