#!/usr/bin/env node 
 | 
  
 | 
// cli.js 
 | 
// JSON5 command-line interface. 
 | 
// 
 | 
// This is pretty minimal for now; just supports compiling files via `-c`. 
 | 
// TODO More useful functionality, like output path, watch, etc.? 
 | 
  
 | 
var FS = require('fs'); 
 | 
var JSON5 = require('./json5'); 
 | 
var Path = require('path'); 
 | 
  
 | 
var USAGE = [ 
 | 
    'Usage: json5 -c path/to/file.json5 ...', 
 | 
    'Compiles JSON5 files into sibling JSON files with the same basenames.', 
 | 
].join('\n'); 
 | 
  
 | 
// if valid, args look like [node, json5, -c, file1, file2, ...] 
 | 
var args = process.argv; 
 | 
  
 | 
if (args.length < 4 || args[2] !== '-c') { 
 | 
    console.error(USAGE); 
 | 
    process.exit(1); 
 | 
} 
 | 
  
 | 
var cwd = process.cwd(); 
 | 
var files = args.slice(3); 
 | 
  
 | 
// iterate over each file and convert JSON5 files to JSON: 
 | 
files.forEach(function (file) { 
 | 
    var path = Path.resolve(cwd, file); 
 | 
    var basename = Path.basename(path, '.json5'); 
 | 
    var dirname = Path.dirname(path); 
 | 
  
 | 
    var json5 = FS.readFileSync(path, 'utf8'); 
 | 
    var obj = JSON5.parse(json5); 
 | 
    var json = JSON.stringify(obj, null, 4); // 4 spaces; TODO configurable? 
 | 
  
 | 
    path = Path.join(dirname, basename + '.json'); 
 | 
    FS.writeFileSync(path, json, 'utf8'); 
 | 
}); 
 |