#!/usr/bin/env node

const flat = require('.') const fs = require('fs') const path = require('path') const readline = require('readline')

if (process.stdin.isTTY) {

// Read from file
const file = path.resolve(process.cwd(), process.argv.slice(2)[0])
if (!file) usage()
if (!fs.existsSync(file)) usage()
out(require(file))

} else {

// Read from newline-delimited STDIN
const lines = []
readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
})
  .on('line', line => lines.push(line))
  .on('close', () => out(JSON.parse(lines.join('\n'))))

}

function out (data) {

process.stdout.write(JSON.stringify(flat(data), null, 2))

}

function usage () {

console.log(`

Usage:

flat foo.json cat foo.json | flat `)

process.exit()

}