mirror of
https://github.com/mapbox/node-fontnik.git
synced 2026-01-25 16:02:44 +00:00
57 lines
1.4 KiB
JavaScript
Executable File
57 lines
1.4 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var queue = require('queue-async');
|
|
var argv = require('minimist')(process.argv.slice(2), {
|
|
boolean: ['verbose', 'help']
|
|
});
|
|
|
|
if (argv.help) {
|
|
console.log('usage: font-inspect --register=FONTDIRECTORY');
|
|
console.log('option: --verbose');
|
|
console.log('option: --register=FONTDIRECTORY');
|
|
console.log('option: --face=SPECIFICFONTFACE');
|
|
return;
|
|
}
|
|
|
|
if (argv.register && !process.env.FONTNIK_FONTS) {
|
|
process.env.FONTNIK_FONTS = path.resolve(argv.register);
|
|
}
|
|
|
|
var fontnik = require('../index.js');
|
|
var faces = [];
|
|
|
|
if (argv.face) {
|
|
faces = [argv.face];
|
|
} else {
|
|
var register = path.resolve(argv.register);
|
|
faces = fs.readdirSync(register).map(function(f) { return path.join(register, f); });
|
|
}
|
|
|
|
if (argv.verbose) {
|
|
console.error('resolved', faces);
|
|
}
|
|
|
|
var q = queue();
|
|
|
|
function getCoverage(face, cb) {
|
|
fs.readFile(face, function(err, res) {
|
|
if (err) return cb(err);
|
|
fontnik.load(res, function(err, faces) {
|
|
if (err) return cb(err);
|
|
return cb(null, {
|
|
face: [faces[0].family_name, faces[0].style_name].join(' '),
|
|
coverage: faces[0].points
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
faces.forEach(function(f) { q.defer(getCoverage, f) });
|
|
|
|
q.awaitAll(function(err, res) {
|
|
if (err) console.error(err);
|
|
process.stdout.write(JSON.stringify(res, null, 2));
|
|
});
|