|
1 | 1 | #!/usr/bin/env node
|
2 | 2 |
|
3 | 3 | var tj = require('./'),
|
4 |
| - opt = require('optimist') |
5 |
| - .usage('Usage: $0 [-f format] FILE') |
6 |
| - .describe('f', 'file format. if not given, will be detected by filename') |
7 |
| - .default('f', 'kml'), |
8 |
| - argv = opt.argv, |
| 4 | + argv = require('minimist')(process.argv.slice(2)), |
9 | 5 | concat = require('concat-stream'),
|
10 | 6 | fs = require('fs'),
|
11 | 7 | xmldom = new (require('xmldom').DOMParser)();
|
12 | 8 |
|
13 |
| -var filename = argv._[0] || '', f = (argv.f); |
| 9 | +var filename = argv._[0] || '', |
| 10 | + filetype = (argv.f || 'kml'); |
14 | 11 |
|
15 |
| -if (filename.match(/\.kml$/i)) f = 'kml'; |
16 |
| -if (filename.match(/\.gpx$/i)) f = 'gpx'; |
| 12 | +if (filename.match(/\.kml$/i)) filetype = 'kml'; |
| 13 | +if (filename.match(/\.gpx$/i)) filetype = 'gpx'; |
17 | 14 |
|
18 |
| -if (process.stdin.isTTY && !argv._[0]) return opt.showHelp(); |
| 15 | +if (!tj[filetype] || (process.stdin.isTTY && !argv._[0])) { |
| 16 | + return help(); |
| 17 | +} |
19 | 18 |
|
20 | 19 | (argv._.length ? fs.createReadStream(argv._[0]) : process.stdin).pipe(concat(convert));
|
21 | 20 |
|
22 | 21 | function convert(data) { process.stdout.write(
|
23 |
| - JSON.stringify(tj[f](xmldom.parseFromString(data.toString())), null, 4)); |
| 22 | + JSON.stringify(tj[filetype](xmldom.parseFromString(data.toString())), null, 4)); |
| 23 | +} |
| 24 | + |
| 25 | +function help() { |
| 26 | + console.error('Usage: togeojson [-f format] FILE\n' + |
| 27 | + '-f file format. if not given, will be detected by filename'); |
24 | 28 | }
|
0 commit comments