mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-20 10:37:37 -04:00
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
|
||
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
|
||
|
let output = '';
|
||
|
let inputs = [];
|
||
|
let definePrefix = '';
|
||
|
let lastCommand = '';
|
||
|
|
||
|
for (let i = 2; i < process.argv.length; ++i) {
|
||
|
const arg = process.argv[i];
|
||
|
if (lastCommand) {
|
||
|
if (lastCommand == '-o') {
|
||
|
output = arg;
|
||
|
} else if (lastCommand == '-p') {
|
||
|
definePrefix = arg;
|
||
|
}
|
||
|
lastCommand = '';
|
||
|
} else if (arg[0] == '-') {
|
||
|
lastCommand = arg;
|
||
|
} else {
|
||
|
inputs.push(arg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
inputs.push('TOTAL_COUNT');
|
||
|
|
||
|
const invalidCharactersRegex = /[^\w\d_]+/gm;
|
||
|
|
||
|
function formatSoundName(soundFilename, index) {
|
||
|
const extension = path.extname(soundFilename);
|
||
|
const lastPart = path.basename(soundFilename, extension);
|
||
|
const defineName = definePrefix + lastPart.replace(invalidCharactersRegex, '_').toUpperCase();
|
||
|
return `#define ${defineName} ${index}`;
|
||
|
}
|
||
|
|
||
|
function formatFile(outputFilename, soundFilenames) {
|
||
|
const defineName = outputFilename.replace(invalidCharactersRegex, '_').toUpperCase();
|
||
|
return `#ifndef ${defineName}
|
||
|
#define ${defineName}
|
||
|
|
||
|
${soundFilenames.map(formatSoundName).join('\n')}
|
||
|
|
||
|
#endif`
|
||
|
}
|
||
|
|
||
|
fs.writeFileSync(output, formatFile(output, inputs));
|