all-in-one: partially clean up generate-all-in-one.js
This commit is contained in:
parent
d9b8298ccb
commit
4aabde451c
@ -3,37 +3,42 @@
|
|||||||
var path = require('path');
|
var path = require('path');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
var files = [];
|
// Parse command line options.
|
||||||
var include_dirs = [];
|
|
||||||
var opt_strip_guards = false;
|
|
||||||
|
|
||||||
for (var i = 2; i < process.argv.length; i++) {
|
var files = [];
|
||||||
var arg = process.argv[i];
|
var includeDirs = [];
|
||||||
var match;
|
var stripGuardsEnabled = false;
|
||||||
if (match = /^-I(.*)$/.exec(arg))
|
|
||||||
include_dirs.push(match[1]);
|
process.argv
|
||||||
else if (arg === '--strip-guards')
|
.slice(2)
|
||||||
opt_strip_guards = true;
|
.forEach((arg) => {
|
||||||
else
|
let match;
|
||||||
files.push(arg);
|
if (match = /^-I(.*)$/.exec(arg))
|
||||||
}
|
includeDirs.push(match[1]);
|
||||||
|
else if (arg === '--strip-guards')
|
||||||
|
stripGuardsEnabled = true;
|
||||||
|
else
|
||||||
|
files.push(arg);
|
||||||
|
});
|
||||||
|
|
||||||
var included = {};
|
var included = {};
|
||||||
|
|
||||||
function load(filename) {
|
function readFileWithPath(fileName, dirs) {
|
||||||
if (/[\/\\]/.test(filename))
|
if (/[/\\]/.test(fileName))
|
||||||
return fs.readFileSync(filename, 'utf8');
|
return fs.readFileSync(fileName, 'utf8');
|
||||||
|
|
||||||
var PATH = ['.'].concat(include_dirs);
|
for (let i = 0; i < dirs.length; i++) {
|
||||||
for (; ;) {
|
var filePath = path.resolve(dirs[i], fileName);
|
||||||
var dir = PATH.shift();
|
|
||||||
try {
|
try {
|
||||||
return fs.readFileSync(dir + '/' + filename, 'utf8');
|
return fs.readFileSync(filePath, 'utf8');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (PATH.length == 0)
|
// Ignore.
|
||||||
throw e;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var err = new Error('file not found: ' + fileName);
|
||||||
|
err.code = 'ENOENT'
|
||||||
|
throw err;
|
||||||
}
|
}
|
||||||
|
|
||||||
function strip_guards(filename, source) {
|
function strip_guards(filename, source) {
|
||||||
@ -64,7 +69,7 @@ function strip_guards(filename, source) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function lines(filename, strip) {
|
function lines(filename, strip) {
|
||||||
var source = load(filename);
|
var source = readFileWithPath(filename, ['.'].concat(includeDirs));
|
||||||
if (strip) source = strip_guards(filename, source);
|
if (strip) source = strip_guards(filename, source);
|
||||||
return source.split(/\r?\n/g);
|
return source.split(/\r?\n/g);
|
||||||
}
|
}
|
||||||
@ -86,7 +91,7 @@ function add(filename) {
|
|||||||
var key = path.basename(filename).toLowerCase();
|
var key = path.basename(filename).toLowerCase();
|
||||||
console.error('Adding: ' + key);
|
console.error('Adding: ' + key);
|
||||||
included[key] = true;
|
included[key] = true;
|
||||||
return lines(filename, opt_strip_guards);
|
return lines(filename, stripGuardsEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
var sys_included = {};
|
var sys_included = {};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user