#!/usr/bin/env node var argv = require('minimist')(process.argv.slice(2), { boolean: 'json', boolean: 'mapbox-api-supported' }), validate = require('../').validate, validateMapboxApiSupported = require('../').validateMapboxApiSupported rw = require('rw'), status = 0; if (argv.help || argv.h || (!argv._.length && process.stdin.isTTY)) { return help(); } if (!argv._.length) { argv._.push('/dev/stdin'); } argv._.forEach(function(file) { var errors; if (argv['mapbox-api-supported']) { errors = validateMapboxApiSupported(rw.readFileSync(file, 'utf8')); } else { errors = validate(rw.readFileSync(file, 'utf8')); } if (errors.length) { if (argv.json) { process.stdout.write(JSON.stringify(errors, null, 2)); } else { errors.forEach(function (e) { console.log('%s:%d: %s', file, e.line, e.message); }); } status = 1; } }); process.exit(status); function help() { console.log('usage:'); console.log(' gl-style-validate file.json'); console.log(' gl-style-validate < file.json'); console.log(''); console.log('options:'); console.log('--json output errors as json'); console.log('--mapbox-api-supported validate compatibility with Mapbox Styles API'); }