mirror of
https://github.com/mapbox/node-fontnik.git
synced 2026-02-01 16:47:18 +00:00
46 lines
1.1 KiB
JavaScript
Executable File
46 lines
1.1 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
var fontnik = require('../index.js');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var queue = require('queue-async');
|
|
|
|
if (process.argv.length !== 4) {
|
|
console.log('Usage:');
|
|
console.log(' build-glyphs <fontstack> <output dir>');
|
|
console.log('');
|
|
console.log('Example:');
|
|
console.log(' build-glyphs "Open Sans Regular" glyphs/');
|
|
process.exit(1);
|
|
}
|
|
|
|
var fontstack = process.argv[2];
|
|
var dir = path.resolve(process.argv[3]);
|
|
|
|
if (!fs.existsSync(dir)) {
|
|
console.warn('Error: Directory %s does not exist', dir);
|
|
process.exit(1);
|
|
}
|
|
|
|
var q = queue(Math.max(4, require('os').cpus()));
|
|
var queue = [];
|
|
for (var i = 0; i < 65536; (i = i + 256)) {
|
|
q.defer(writeGlyphs, {
|
|
fontstack: fontstack,
|
|
start: i,
|
|
end: Math.min(i + 255, 65535)
|
|
});
|
|
}
|
|
|
|
function writeGlyphs(opts, done) {
|
|
fontnik.range(opts, function(err, zdata) {
|
|
if (err) {
|
|
console.warn(err.toString());
|
|
process.exit(1);
|
|
}
|
|
fs.writeFileSync(dir + '/' + opts.start + '-' + opts.end + '.pbf', zdata);
|
|
done();
|
|
});
|
|
}
|
|
|