| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/env node
- var os = require("os"),
- rw = require("rw").dash,
- path = require("path"),
- iconv = require("iconv-lite"),
- commander = require("commander"),
- dsv = require("../");
- var program = path.basename(process.argv[1]),
- defaultInDelimiter = program.slice(0, 3) === "tsv" ? "\t" : ",";
- commander
- .version(require("../package.json").version)
- .usage("[options] [file]")
- .option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
- .option("-r, --input-delimiter <character>", "input delimiter character", defaultInDelimiter)
- .option("-a, --auto-type", "parse rows with type inference (see d3.autoType)")
- .option("-n, --newline-delimited", "output newline-delimited JSON")
- .option("--input-encoding <encoding>", "input character encoding; defaults to “utf8”", "utf8")
- .option("--output-encoding <encoding>", "output character encoding; defaults to “utf8”", "utf8")
- .parse(process.argv);
- var inFormat = dsv.dsvFormat(commander.inputDelimiter);
- rw.readFile(commander.args[0] || "-", function(error, text) {
- if (error) throw error;
- var rowConverter = commander.autoType ? dsv.autoType : null
- var rows = inFormat.parse(iconv.decode(text, commander.inputEncoding), rowConverter);
- rw.writeFile(commander.out, iconv.encode(commander.newlineDelimited
- ? rows.map(function(row) { return JSON.stringify(row); }).join("\n") + "\n"
- : JSON.stringify(rows) + os.EOL, commander.outputEncoding), function(error) {
- if (error) throw error;
- });
- });
|